الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استخدام الرموز الخاصة Wildcard في البحث مع Like

بدأه صاحب همة في 20 فبراير 2012 · 2 رد · 1,191 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

أود الحديث هنا عن الرموز الخاصة ( Wildcards ) التي يمكن استخدامها مع التعبير أو المعامل LIKE للبحث في الحقول النصية.

لتوضيح الأفكار سنستعين بالجدول التالي :



CREATE TABLE dbo.Jobs(
JobID int IDENTITY(1,1) NOT NULL,
JobTitle varchar(100) NULL)

ثم هذه بعض البيانات للتجربة :


insert into Jobs values('Cheif Executive Officer')
insert into Jobs values('Cheif Financial Officer')
insert into Jobs values('Control Specialist')
insert into Jobs values('Design Engineer')
insert into Jobs values('Engineering Manager')
insert into Jobs values('European Sales Manager')

1- الرمز ( % ) : هذه الرمز ربما يكون الأكثر شيوعاً واستخداماً وهو يقوم مقام أي عدد من حروف النص المراد البحث فيه حسب موقع وجود الرمز ( يشمل هذا أيضاً أن يكون عدد الحروف صفر ).

• مثلاً at% يمكن أن تظهر أي من الكلمات التالية : at , that , fat , atom

• وبالنسبة للجدول أعلاه يكون للجملة التالية :

Select * from Jobs Where JobTitle Like '%er'

النتيجة التالية :

post-42922-005323200 1329734745_thumb.jp

ويكون للجملة التالية :

 Select * from Jobs Where JobTitle Like '%Engineer%'

النتيجة التالية :

post-42922-061241800 1329734859_thumb.jp

2- الرمز ( _ ) : وهو يقوم مقام مقام حرف واحد فقط من حروف النص المراد البحث فيه .

• مثلاً : at_ يمكن أن تظهر fat , cat , match لكن ليس that , at

• وبالنسبة للجدول أعلاه يكون للجملة التالية :

Select * from Jobs Where JobTitle Like '_e%'

النتيجة التالية :

post-42922-099711600 1329735113_thumb.jp

لاحظ أن النتيجة لم يظهر فيها Chief Executive Officer مثلاً لوجود حرفين قبل الحرف e ، وكذلك لم تظهر Engineering Manager لوجود خمسة أحرف قبل e .

3- الرمز ( [ ] ) : يقوم مقام الحروف الواقعة بين القوسين سواء كانت منفصلة أو كانت تعبيراً عن مدى أو نطاق معين.

• مثلاً [a-d ] تدخل فيها الحروف الواقعة بين a و d أي : a , b , c, d ولكن [a,b,d] تشمل الحروف المذكورة بين القوسين فقط.

• وبالنسبة للجدول أعلاه يكون للجملة التالية :

 Select * from Jobs Where JobTitle Like '[C,E]%'

النتيجة التالية :

post-42922-043523200 1329735324_thumb.jp

لاحظ أن النتيجة أظهرت أي بيان بدأ بـ C أو E فقط.

4- الرمز ( ^ ) : يستخدم مع التعبير السابق ولكن للنفي .

• مثلاً [a,d^] تعني ألا يكون الحرفان المذكوران جزءاً من النتيجة

• وبالنسبة للجدول أعلاه يكون للجملة التالية :

Select * from Jobs Where JobTitle Like '[^CD]%'

النتيجة التالية :

post-42922-021663000 1329735515_thumb.jp

بقيت ملاحظة مهمة في هذا السياق وهي أن استخدام هذه الرموز يؤثر على استخدام الــ Indexes بشكل سلبي لذلك يفضل استخدامها عند الحاجة إليها فقط.

أرجو أن يكون ما كتب أعلاه مفيداً وواضحاً. والله أعلم

المرفقات
WC001.jpgWC002.jpgWC003.jpgWC004.jpgWC005.jpg
2

من لمح فجر الأجر هان عليه ظلام التكليف

#2

شرح جميل اكرمك الله

#3

بارك الله فيك أخي الكريم

من لمح فجر الأجر هان عليه ظلام التكليف

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…