با استفاده از تابع SUBSTRING در MySQL، یک کوئری بنویسید که از جدول employees و ستون full_name، نام کوچک را (متن قبل از اولین فاصله) استخراج و به عنوان first_name نمایش دهد.

4.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:23

0.0

برای حل این مسئله از تابع SUBSTRING به همراه تابع LOCATE (یا INSTR) برای پیدا کردن جایگاه اولین فاصله استفاده کنید؛ مثال: SUBSTRING(full_name, 1, LOCATE(' ', full_name) - 1). برای سطرهایی که فاصله ندارند باید با یک شرط (مثلاً CASE WHEN LOCATE(' ', full_name) > 0 THEN ... ELSE full_name END) رفتار مناسب نشان دهید. این کوئری با نسخه‌های استاندارد MySQL کار می‌کند و نکته مهم مدیریت مقادیر NULL و رشته‌های بدون فاصله است.

توسط پژوهشگر در 201 روز قبل ساعت 03:23
دسته بندی ها: MySQL MySQL for beginner
arman در 201 روز قبل ساعت 06:34

برای استخراج نام کوچک با SUBSTRING و LOCATE، جایگاه اولین فاصله را پیدا کرده و از ابتدای رشته تا قبل از آن فاصله استفاده کنید. در مواجهه با مقادیر NULL یا رشته‌هایی بدون فاصله، از CASE WHEN LOCATE(' ', full_name) > 0 THEN SUBSTRING(TRIM(full_name), 1, LOCATE(' ', TRIM(full_name)) - 1) ELSE TRIM(full_name) END استفاده کنید. اگر بخواهید رویکرد ساده‌تری بگیرید، می‌توانید از SUBSTRING_INDEX(full_name, ' ', 1) استفاده کنید، اما به درخواست شما باید با SUBSTRING/LOCATE کار شود. همچنین با استفاده از COALESCE یا IFNULL می‌توانید نتیجه را به جای NULL در نظر بگیرید و با مقادیر خالی سازگار باشید.

گزارش

1 پاسخ

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

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