با استفاده از تابع 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 سطح مبتدی برای کار با توابع متنی و کوئری‌سازی داده‌ها مناسب است.

توسط پژوهشگر در 201 روز قبل ساعت 03:38
دسته بندی ها: MySQL MySQL for beginner
arash در 201 روز قبل ساعت 05:44

برای ساده‌کردن این کار می‌توانید از تابع ساده‌تر 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 کنید تا فضاهای اطراف مقدار استخراج‌شده را پاک کنید.

گزارش

1 پاسخ

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

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