وظيفة MySQL INSTR ()
باستخدام دالة instr () ، يمكننا توفير سلسلة نصية وسلسلة فرعية. ستحدد الوظيفة ما إذا كانت السلسلة الفرعية موجودة في سلسلة المصدر. إذا كانت السلسلة الفرعية موجودة ، فستقوم الوظيفة بإرجاع موضع التكرار الأول للسلسلة الفرعية في السلسلة المصدر.
إذا لم تكن السلسلة الفرعية موجودة في السلسلة المصدر ، فستُرجع الدالة 0.
يوضح ما يلي بناء جملة الدالة instr ():
INSTR (src_string، sub_string) ،
تقبل الوظيفة معلمتين رئيسيتين:
- يشير src_string إلى سلسلة المصدر التي تريد البحث فيها.
- تحدد السلسلة الفرعية السلسلة الفرعية التي تبحث عنها.
من الجيد أن تضع في اعتبارك أن دالة instr () غير حساسة لحالة الأحرف. ومن ثم ، فإن الوظيفة ستحدد فقط الأنماط المطابقة مع تجاهل غلاف الحرف ،
لإجراء بحث حساس لحالة الأحرف ، يمكنك استخدام أدوات أخرى ، مثل عامل التشغيل الثنائي.
مثال على استخدام الوظيفة
توضح الأمثلة التالية كيف يمكننا استخدام دالة instr () للبحث عن سلسلة فرعية معينة.
SELECT INSTR ('MySQL محرك قاعدة بيانات رائع' ، 'قاعدة بيانات') كنقطة بيع ؛
المثال أعلاه سيعيد موضع البداية للسلسلة 'database' من السلسلة المصدر. في هذه الحالة ، يكون موضع سلسلة قاعدة البيانات هو 21 كما هو موضح في الإخراج أدناه:
نقاط البيع |- +
21 |
مثال 2
يمكننا استخدام الدوال الدنيا () أو العلوية لتحويل سلسلة نصية إلى أحرف صغيرة أو أحرف كبيرة. يمكن أن يساعدنا ذلك في التغلب على طبيعة الوظيفة الحساسة لحالة الأحرف.
مثال:
SELECT INSTR (أقل ('MySQL محرك قاعدة بيانات رائع') ، أقل ('قاعدة بيانات')) مثل strong> pos ؛نتيجة:
نقاط البيع |
- +
21 |
سيؤدي هذا إلى إرجاع قيمة مماثلة للمثال الأول ، حيث يتم تحويل سلسلة المصدر والسلسلة الفرعية إلى أحرف صغيرة قبل عملية البحث.
مثال 3
يمكننا أيضًا استخدام الدالة instr () مع عمود الجدول ، كما هو موضح في بناء الجملة أدناه.
حدد INSTR (اسم_العمود ، 'سلسلة فرعية')من table_name ؛
مثال:
إنشاء مدونات الجدول (معرف INT NULL AUTO_INCREMENT PRIMARY KEY ،
العنوان VARCHAR (255) NOT NULL ،
محتوى النص ليس فارغًا ،
date_posted DATE NOT NULL ،
المؤلف VARCHAR (255) NOT NULL
) ؛
أدخل بعض البيانات:
INSERT INTO blogs (العنوان ، المحتوى ، date_posted ، المؤلف)
القيم ('منشور مدونتي الأولى' ، 'هذا هو محتوى أول منشور لي في المدونة.' ، '2022-12-09' ، 'جين دو') ؛
INSERT INTO blogs (العنوان ، المحتوى ، date_posted ، المؤلف)
القيم ('منشور مدونتي الثانية' ، 'هذا هو محتوى تدوينة المدونة الثانية' ، '2022-12-10' ، 'جين دو') ؛
INSERT INTO blogs (العنوان ، المحتوى ، date_posted ، المؤلف)
القيم ('منشور مدونتي الثالثة' ، 'هذا هو محتوى تدوينة مدونتي الثالثة' ، '2022-12-11' ، 'جين دو') ؛
حدد * من المدونات ؛
الجدول الناتج:
يمكننا استخدام الدالة instr () للحصول على موضع السلسلة الفرعية 'blog' في عمود المحتوى كما هو موضح:
حدد العنوان ، instr (المحتوى ، 'المنشور') من المدونات ؛نتيجة:
استنتاج
في هذا البرنامج التعليمي ، تعلمت كيفية استخدام دالة INSTR () في MySQL للعثور على موضع سلسلة فرعية داخل سلسلة. الوظيفة حساسة لحالة الأحرف. وبالتالي ، قد تحتاج إلى استخدام وظائف مثل السفلي والعلوي لتحويل سلاسل البحث إلى الحالات التي تريدها.