![]() |
|
[سؤال] البحث ضمن النصوص في SQL - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40) +--- قسم : قسم مقالات SQL SERVER (http://vb4arb.com/vb/forumdisplay.php?fid=84) +--- الموضوع : [سؤال] البحث ضمن النصوص في SQL (/showthread.php?tid=34293) |
البحث ضمن النصوص في SQL - nizar haider - 12-04-20 السلام عليكم ورحمة الله وبركاته لو سمحتم , أريد جملة استعلام لجلب الاسم الكامل لشخص أو صنف بضاعة يتكون من كلمتين بأن أضع في البحث أول حرف أو حرفين من الكلمة الأولى ثم مسافة ثم أول حرف أو حرفين من الكلمة الثانية مثال : طاولة حمراء أضع في البحث ط ثم مسافة ثم ح فيجلب لي كل ما هو مطابق لجملة البحث أنا أعرف طريقة البحث بواسطة حرف أو اكثر ولكن من خلال كلمتين بينهما مسافة فهذا ماأريد معرفته جزاكم الله كل خير RE: البحث ضمن النصوص في SQL - nizar haider - 15-04-20 باعتبار لم يقم أحد من الخبراء بالرد
قمت بعدة تجارب على الموضوع حتى وجدت الحل كما هو موضح في الكود في الأسفل
يوجد لدينا حقل العنوان ونريد جلب عنوان باسم : Old Damasqus
نضع في البحث أول حرف من الكلمة الأولى و أول حرف من الكلمة الثانية فيكون الحصر في البحث أفضل من وضع المحرف الأول من أول كلمة فقط , لإنه يمكن أن يجلب لنا أكثر من كلمة لديها نفس المحرف ,
عندما تكون البيانات قليلة فليس هناك مشكلة ولكن إذا كانت البيانات كبيرة يكون الحل في حصر المطلوب بين كلمتين متجاورتين افضل
يبقى الموضوع الثاني والهام كيف تأخذ قيمة البحث من نافذة المستخدم وتحولها لعبارة تفهمها SQL ضمن متغير كل حسب لغة البرمجة التي يعمل عليها
لأن المستخدم سوف يدخل حرف ثم مسافة ثم الحرف الثاني
هنا يجب أن تحول هذه المسافة إلى under square
كما في كلمة Old Damasqus
المطلوب هنا في مربع البحث إدخال o d ونقوم بتحويلها إلى o_d وإعطائها لمتغير يوضع ضمن جملة الاستعلام
'%SELECT cli_address FROM clients WHERE cli_address LIKE '%o_d
أردت أن أشارككم في حل هذه المشكلة ليستفيد منها الجميع
مع شكري وامتناني
ملاحظة : لم تنجح هذه الطريقة عندما تكون البيانات بالعربي علما ان ترميز قاعدة البيانات والجداول utf8_unicode_ci وكانت تظهر النصوص عربي بدون اي مشاكل ولكن لم يعطي الاستعلام النتائج المطلوبة نرجوا من الخبراء أن يفيدونا إذا كان لديهم حل؟ |