INSTR
جزء من قسم ما وراء الأساسيات في رحلة SQL على Coddy — الدرس 8 من 27.
تُرجع الدالة INSTR(haystack, needle) موضع needle في haystack (بناءً على الفهرس 1)، أو 0 إذا لم يكن موجوداً.
INSTR('alice@example.com', '@') -- 6
INSTR('hello', 'z') -- 0عند دمجها مع SUBSTR، هذه هي الطريقة التي تقسم بها سلسلة نصية بناءً على فاصل. لاستخراج الجزء الذي يسبق @ في بريد إلكتروني:
SUBSTR(email, 1, INSTR(email, '@') - 1)أنت تقول: خذ البريد الإلكتروني، بدءاً من الموضع 1، بعدد الأحرف التي تأتي قبل الـ @.
التحدي
سهلالجداول والأعمدة المتاحة:
<strong>signups</strong>:<strong>id</strong>,<strong>email</strong>
أعد id و domain الخاص بكل بريد إلكتروني (كل شيء بعد @) كـ domain. افترض أن كل بريد إلكتروني يحتوي على @ واحدة بالضبط. رتب حسب id.
ورقة مرجعية
تُرجع INSTR(haystack, needle) الموضع (بدءاً من 1) لـ needle في haystack، أو 0 إذا لم يتم العثور عليها:
INSTR('alice@example.com', '@') -- 6
INSTR('hello', 'z') -- 0استخدمها مع SUBSTR لتقسيم سلسلة نصية بناءً على فاصل:
-- الجزء قبل '@'
SUBSTR(email, 1, INSTR(email, '@') - 1)
-- الجزء بعد '@'
SUBSTR(email, INSTR(email, '@') + 1)جرّب بنفسك
SELECT id,
-- كل شيء بعد الـ '@'
FROM signups
ORDER BY id
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.