با استفاده از تابع 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 استفاده کنید.

توسط پژوهشگر در 202 روز قبل ساعت 02:29
دسته بندی ها: MySQL MySQL for beginner
arman در 202 روز قبل ساعت 09:28

برای استخراج نام کاربری ایمیل قبل از علامت '@' در MySQL، می‌توانید از SUBSTRING همراه LOCATE استفاده کنید تا محل '@' را بیابید و از ابتدای رشته تا قبل از آن را جدا کنید. اگر بخواهید کار ساده‌تر باشد، می‌توانید از SUBSTRING_INDEX(email, '@', 1) استفاده کنید، اما باید در نظر داشت که اگر '@' وجود ندارد، این تابع کل ایمیل را برمی‌گرداند. برای جلوگیری از بازگشت مقادیر نامربوط یا منفی طول، از یک شرط CASE یا IF استفاده کنید تا فقط در صورت وجود '@'، بخش نام کاربری استخراج شود و در غیر این صورت NULL برگردد. نتیجه را می‌توانید به صورت id و username از جدول users بگیرید یا از COALESCE استفاده کنید تا مقادیر NULL را به رشته خالی تبدیل کنید.

گزارش

1 پاسخ

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

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