LOCATE (LOCATE)
تابع LOCATE در MySQL یک «تابع (Function)» جستجوست. این تابع جای اولین «زیررشته (Substring)» را در یک رشته می دهد. نتیجه از عدد 1 شروع می شود. اگر پیدا نشود، مقدار 0 برمی گردد. جستجو نسبت به بزرگی حروف بی تفاوت است.
تعریف، نحو و کاربرد
نوشتار تابع: LOCATE(substring, string, start). ورودی سوم «start» اختیاری است و جای شروع جستجو را می گوید. مقدار پیش فرض آن 1 است.
نکته: تابع LENGTH طول رشته را می دهد و کنار LOCATE برای اعتبارسنجی مفید است. همچنین INSTR رفتاری شبیه دارد.
مثال 1: جستجوی یک رقم در رشته
اینجا دنبال "3" در "W3Schools.com" می گردیم و موقعیت را می گیریم.
SELECT LOCATE("3", "W3Schools.com") AS MatchPosition;
مثال 2: شروع از جای خاص
از موقعیت 3 به بعد دنبال "com" می گردیم. شروع سفارشی است.
SELECT LOCATE("com", "W3Schools.com", 3) AS MatchPosition;
مثال 3: جستجو روی ستون ها
در ستون CustomerName دنبال حرف "a" می گردیم. خروجی یک عدد است.
SELECT LOCATE("a", CustomerName)
FROM Customers;
گام های عملی سریع
- رشته منبع یا ستون را مشخص کن.
- زیررشته هدف را تعیین کن.
- در صورت نیاز، مقدار start را بگذار.
- LOCATE(...) را در SELECT اجرا کن.
نکته: تابع RIGHT برای برش از انتها کاربردی است؛ بعد از یافتن موقعیت می تواند مفید باشد.
جمع بندی سریع
- LOCATE جای اولین وقوع را می دهد.
- اگر نبود، نتیجه 0 است.
- جستجو نسبت به بزرگی حروف بی تفاوت است.
- آرگومان start اختیاری است.