Register now or log in to join your professional community.
كيف أقوم بالبحث في قاعدة بيانات من خلال جزء من الأسم بواسطة sql server لغة c# مثلا لو كان الاسم الكامل : محمد علي قاسم وقام المستخدم بادخال : محمد أو محم أو مح أو محمد علي أو محمد علي قا أي أن المستخدم ممكن يدخل الأسم كامل أو جزء منه حتى ولو كان الحرف الأول فأن البحث يعطي نتيجة بكل الاسماء المحتملة والمطابقة . وكذلك في حال حفظ الاسم باللغة الانجليزية وعند البحث ادخلت نفس الاسم ولكن باللغة العربية كيف يمكنني تحقيق ذلك ؟
كما قال الاخ احمد منصور في الاجابة السابقة فهي كافية
ولكن يفضل عدم استخدامها كثير او استخدام
مع الاستعلام top(10)
ليخرج لك فقط اول10 اسما متطابقة
select top(10) * from ..... where ...like 'ddd%'
اما اذا كنت تريدها منتهي بـ
select top(10) * from ..... where ...like '%ddd'
في حالة ادخال المستخدم جزء من الكلمة فانه يتم استخدم الكلمة المميزة LIKE عند استخدام الفلتر WHERE
مثال
ًWhere firstname LIKE '
'A%'
فمعناه اعطني كل الاسماء التي تبدأ بالحرف A.............هذا في الغة الانجليزية وبالمثل في العربية
والله اعلم
اذا بدك تبحث عن الاسم بالعربي فلا بد اضافة
N مع الاستعلام
وكمان الحقل يكون
nvarchar(2000)
الرجاء الاطلاع على الاستعلام
" fieldname like N'%مح%'"
باستخدام "like" في جملة البيان والحرف "*" لتحدد كيفية البحث ضمن الاسم المحدد وان كان في البداية أو نهاية أو متوسطة الاسم
الحالة الاولي :
اذا كنت ستستخدم جزءمن الاسم و تريد استرجاع كل الحقول الموجود بها هذا الجزء من الاسم استخدم LIKE مع WHERE علي الحقول التي لم يتم عليها aggregate columns و مع HAVING في الاعمدة التي تم التجميع عليها
الحالة الاولي :
WHERE الحقل المطلوب LIKE (%علي%)
سيقوم باظهار كل النتائج التي بها علي
الحالة الثانية:
اذا كنت تعلم الاسم كامل و تريد استرجاع كل الحقول لهذا الاسم استخدم (=) مع WHERE علي الحقول التي لم يتم عليها aggregate columns و مع HAVING في الاعمدة التي تم التجميع عليها
WHERE الحقل المطلوب = 'محمد علي قاسم '
مع ملاحظة انه يجب وضع الاسم بين علامات التنصيص single quotes