در جدول 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 برای شروع جستجو از موقعیت مشخص بهره ببرید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای جستجوی بدون حساسیت به حروف از LOWER(description) استفاده کنید تا یافتن 'error' مطمئنتر باشد. موقعیت اولین وقوع با LOCATE('error', LOWER(description)) برگردان میشود و اگر نتیجه NULL باشد، با COALESCE به 0 تبدیل کنید تا خروجی یکنواخت باشد. همچنین میتوانید از آرگومان سوم LOCATE برای شروع جستجو از یک موقعیت مشخص استفاده کنید. این ترکیب با NULLها هم سازگار است و از بروز خطا یا خروجی ناقص جلوگیری میکند.
گزارش