FIND_IN_SET (FIND_IN_SET)
تابع FIND_IN_SET جایگاه یک رشته را در یک لیست پیدا می کند. «لیست کامایی» یعنی چند مقدار که با ویرگول جدا شده اند. مثل فهرست اسامی کلاس که با کاما جدا شده است.
تعریف و کاربرد
FIND_IN_SET() موقعیت یک رشته (String) را در یک لیست رشته ها برمی گرداند. اگر رشته پیدا نشود، نتیجه 0 است. اگر هرکدام NULL باشد، نتیجه NULL است. همچنین اگر لیست خالی باشد، نتیجه 0 است. برای جست وجو در آرایه واقعی، سراغ جداول نرمال شده برو.
نحو (Syntax)
FIND_IN_SET(string, string_list);
مثال 1: جست وجوی یک حرف
در لیست "s,q,l" حرف "q" را پیدا کن.
SELECT FIND_IN_SET("q", "s,q,l");
مثال 2: وقتی مقدار وجود ندارد
حرف "a" در لیست نیست؛ خروجی باید صفر باشد.
SELECT FIND_IN_SET("a", "s,q,l");
مثال 3: هنگامی که لیست NULL است
اگر لیست NULL باشد، نتیجه NULL برمی گردد.
SELECT FIND_IN_SET("q", NULL);
گام های تمرینی
- یک لیست کامایی بساز.
- یک مقدار داخل لیست جست وجو کن.
- یک مقدار ناموجود را تست کن.
نکات و مقایسه
نکته: برای یافتن موقعیت در میان چند آرگومان جدا، تابع FIELD را ببین. همچنین برای ساخت لیست های متنی، CONCAT_WS کاربردی است. اگر زیاد از لیست های کامایی استفاده می کنی، بهتر است داده را نرمال سازی کنی.
جمع بندی سریع
- FIND_IN_SET جایگاه در لیست کامایی را می دهد.
- ناموجود یعنی صفر برمی گردد.
- NULL ورودی یعنی نتیجه NULL است.
- برای چند آرگومان جدا، FIELD مناسب تر است.