در جدول products ستونی به نام description وجود دارد — با استفاده از تابع LOCATE در MySQL موقعیت اولین وقوع رشته 'error' را در هر سطر بیابید و نام محصول و موقعیت را نمایش دهید (اگر یافت نشد مقدار صفر نمایش داده شود).

3.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:33

0.0

برای حل این مسئله از تابع LOCATE(substr, str[, start]) در MySQL استفاده کنید که موقعیت اولین وقوع یک زیررشته را به‌صورت 1-اندکس شده بازمی‌گرداند و در صورت عدم وجود مقدار 0 را برمی‌گرداند؛ توجه داشته باشید اگر ستون NULL باشد ممکن است نتیجه NULL شود بنابراین از COALESCE برای جایگزینی NULL با 0 استفاده کنید. نمونه راه‌حل: SELECT product_name, COALESCE(LOCATE('error', description),0) AS pos FROM products; همچنین می‌توانید با استفاده از LOWER روی description و الگو برای جستجوی بدون حساسیت به حروف اقدام کنید یا از آرگومان سوم LOCATE برای شروع جستجو از موقعیت مشخص بهره ببرید.

توسط پژوهشگر در 202 روز قبل ساعت 02:33
دسته بندی ها: MySQL MySQL for beginner
nima در 202 روز قبل ساعت 09:16

برای جستجوی بدون حساسیت به حروف از LOWER(description) استفاده کنید تا یافتن 'error' مطمئن‌تر باشد. موقعیت اولین وقوع با LOCATE('error', LOWER(description)) برگردان می‌شود و اگر نتیجه NULL باشد، با COALESCE به 0 تبدیل کنید تا خروجی یکنواخت باشد. همچنین می‌توانید از آرگومان سوم LOCATE برای شروع جستجو از یک موقعیت مشخص استفاده کنید. این ترکیب با NULLها هم سازگار است و از بروز خطا یا خروجی ناقص جلوگیری می‌کند.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری