با استفاده از تابع SUBSTRING در MySQL ستون email از جدول users را طوری استخراج کنید که تنها بخش قبل از علامت '@' (نام کاربری ایمیل) نمایش داده شود و شناسه کاربر هم همراه آن باشد.
3.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:29 0.0
برای این کار از SUBSTRING همراه با تابع LOCATE (یا INSTR) استفاده کنید تا محل علامت '@' را پیدا کرده و از ابتدای رشته تا یک کاراکتر قبل از آن را جدا کنید؛ مثلاً SUBSTRING(email,1,LOCATE('@',email)-1). کوئری را با SELECT id, ... AS username FROM users بنویسید و برای حالتهایی که '@' وجود ندارد از IF یا CASE برای جلوگیری از مقادیر منفی در طول SUBSTRING استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای استخراج نام کاربری ایمیل قبل از علامت '@' در MySQL، میتوانید از SUBSTRING همراه LOCATE استفاده کنید تا محل '@' را بیابید و از ابتدای رشته تا قبل از آن را جدا کنید. اگر بخواهید کار سادهتر باشد، میتوانید از SUBSTRING_INDEX(email, '@', 1) استفاده کنید، اما باید در نظر داشت که اگر '@' وجود ندارد، این تابع کل ایمیل را برمیگرداند. برای جلوگیری از بازگشت مقادیر نامربوط یا منفی طول، از یک شرط CASE یا IF استفاده کنید تا فقط در صورت وجود '@'، بخش نام کاربری استخراج شود و در غیر این صورت NULL برگردد. نتیجه را میتوانید به صورت id و username از جدول users بگیرید یا از COALESCE استفاده کنید تا مقادیر NULL را به رشته خالی تبدیل کنید.
گزارش