با استفاده از تابع 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 و رشتههای بدون فاصله است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای استخراج نام کوچک با 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 در نظر بگیرید و با مقادیر خالی سازگار باشید.
گزارش