با استفاده از تابع SUBSTRING در MySQL، نام کاربری (قسمت قبل از '@') را از ستون email در جدول users استخراج کرده و آن را با نام username نمایش دهید.
4.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:38 0.0
برای حل این مسئله میتوانید از ترکیب SUBSTRING و LOCATE (یا INSTR) استفاده کنید: SELECT SUBSTRING(email,1,LOCATE('@',email)-1) AS username FROM users; این کوئری قسمت قبل از اولین '@' را استخراج میکند. نکتهها: مطمئن شوید LOCATE مقدار بزرگتر از صفر برمیگرداند تا طول منفی نداشته باشید (در صورت نیاز از CASE WHEN یا NULLIF/COALESCE برای مدیریت ایمیلهای نامعتبر استفاده کنید) و در صورت نیاز از TRIM برای حذف فضاهای اضافی بهره ببرید؛ این روش در MySQL سطح مبتدی برای کار با توابع متنی و کوئریسازی دادهها مناسب است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای سادهکردن این کار میتوانید از تابع سادهتر SUBSTRING_INDEX استفاده کنید که قسمت قبل از اولین '@' را برمیگرداند. مثلا: SELECT SUBSTRING_INDEX(email, '@', 1) AS username FROM users;. اگر ایمیلها ممکن است فاقد '@' باشند، بهتر است با NULLIF یا CASE WHEN بررسی کنید تا خروجی نامعتبر تولید نشود، مانند: SELECT CASE WHEN email LIKE '%@%' THEN SUBSTRING_INDEX(email, '@', 1) ELSE NULL END AS username FROM users;. در نهایت میتوانید TRIM کنید تا فضاهای اطراف مقدار استخراجشده را پاک کنید.
گزارش