SUBSTRING_INDEX (SUBSTRING_INDEX)
در این درس با تابع SUBSTRING_INDEX در MySQL آشنا می شویم. این تابع با استفاده از یک جداکننده (Delimiter)، بخشی از رشته را برمی گرداند. عدد سوم تعیین می کند چند بار جداکننده شمرده شود. مثل بریدن دامنه سایت با نقطه است.
تعریف کوتاه و کاربرد
SUBSTRING_INDEX() زیررشته ای را قبل یا بعد از چندمین جداکننده برمی گرداند. اگر عدد مثبت باشد، بخش سمت چپ برمی گردد. اگر عدد منفی باشد، بخش سمت راست برمی گردد.
سینتکس (Syntax)
SUBSTRING_INDEX(string, delimiter, number);
پارامترها
- string: رشته اصلی برای بریدن.
- delimiter: جداکننده برای جست وجو.
- number: تعداد دفعات جست وجوی جداکننده؛ مثبت یا منفی.
نکته: عدد مثبت یعنی خروجی از چپِ جداکننده هاست. عدد منفی یعنی خروجی از راستِ جداکننده هاست.
مثال 1: بخش قبل از اولین نقطه
زیررشته قبل از اولین «.» را برگردان.
SELECT SUBSTRING_INDEX("www.w3schools.com", ".", 1);
مثال 2: بخش قبل از دومین نقطه
زیررشته قبل از دومین «.» را برگردان.
SELECT SUBSTRING_INDEX("www.w3schools.com", ".", 2);
راهنمای درک اعداد منفی
عدد منفی یعنی از سمت راست جدا کن. تصور کن تهِ کلاس می نشینی و از آخر می شماری. بنابراین -1 بخش بعد از آخرین جداکننده را می دهد.
تمرین سه گامی
- یک رشته با جداکننده بساز. مثلا «name,surname,grade».
- delimiter را تعیین کن. سپس number را مثبت کن.
- حالا number را منفی کن. تفاوت خروجی را ببین.
برای برش بر اساس موقعیت، به تابع SUBSTRING و تابع SUBSTR هم سر بزن.
جمع بندی سریع
- با جداکننده کار می کند.
- عدد مثبت = سمت چپ.
- عدد منفی = سمت راست.
- برای موقعیت، از SUBSTRING استفاده کن.
- نمونه ها را اجرا کن.