یک پرس‌وجوی MySQL بنویسید که با استفاده از تابع INSERT برای ستون fullname در جدول users هر مقداری مانند 'JohnDoe' را به صورت نمایش تغییر دهد تا بعد از کاراکتر چهارم یک فاصله وارد شده و 'John Doe' نمایش داده شود بدون اینکه داده‌ها را دائمی تغییر دهد.

3.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 03:05

0.0

برای حل این مسئله از تابع رشته‌ای INSERT(str, pos, len, newstr) در MySQL استفاده کنید؛ توجه داشته باشید موقعیت کاراکترها از 1 شروع می‌شود و برای درج باید مقدار len را برابر 0 قرار دهید. ابتدا با یک SELECT و عبارت مثل SELECT INSERT(fullname, 5, 0, ' ') AS newname FROM users WHERE fullname = 'JohnDoe' نتیجه را پیش‌نمایش کنید و در صورت نیاز برای نگهداری تغییرات از UPDATE users SET fullname = INSERT(fullname, 5, 0, ' ') WHERE ... استفاده کنید؛ می‌توانید این کوئری‌ها را در mysql client یا ابزارهایی مثل phpMyAdmin اجرا کنید.

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

این روش فقط نمایش را تغییر می‌دهد و مقدار واقعی ستون fullname را تغییر نمی‌دهد، پس دیتا تغییر نمی‌کند. برای مثال، با fullname='JohnDoe' و استفاده از INSERT(fullname, 5, 0, ' ')، نتیجه نمایش 'John Doe' است. توجه کنید مبنای کاراکترها از 1 است و با len=0 تنها یک فضای جدید افزوده می‌شود. قبل از تبدیل دائمی داده‌ها با UPDATE، حتماً یک SELECT با AS newname اجرا کنید تا پیش‌نمایش بگیرید و صحت نتیجه را بررسی کنید. اگر هدف نمایش دائمیِ بدون تغییر واقعی داده‌ها است، می‌توانید از VIEW یا Generated Column استفاده کنید تا این نمایش به‌طور پایدار بدون آپدیت داده‌ها فراهم شود.

گزارش

1 پاسخ

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

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