یک عبارت SQL بنویسید که با استفاده از تابع SESSION_USER() نام کاربری جلسه جاری را نمایش دهد و در صورت برابر بودن نام کاربری (بدون بخش @host) با 'admin' متن 'مدیر' و در غیر این صورت 'کاربر عادی' را خروجی دهد.

2.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:12

0.0

برای حل این مسئله از تابع SESSION_USER() برای دریافت نام کاربری جلسه استفاده کنید؛ از آنجایی که مقدار بازگشتی ممکن است شامل بخش @host باشد، می‌توانید با SUBSTRING_INDEX(SESSION_USER(), '@', 1) فقط نام کاربری را جدا کنید و سپس با یک عبارت CASE یا IF مقایسه انجام دهید. این کوئری را در یک کلاینت MySQL اجرا کنید؛ توجه داشته باشید SESSION_USER() شبیه USER() عمل می‌کند و اگر نیاز به فقط نام کاربری دارید حتما قسمت قبل از @ را جدا کنید.

توسط پژوهشگر در 220 روز قبل ساعت 02:12
دسته بندی ها: MySQL MySQL for beginner
arman در 220 روز قبل ساعت 10:37

برای نمایش نام کاربری جلسه از SESSION_USER() استفاده کنید و با SUBSTRING_INDEX(SESSION_USER(), '@', 1) نام کاربری را از بخش میزبان جدا کنید. سپس با یک CASE WHEN یا IF مقایسه کنید و اگر برابر با 'admin' بود، خروجی را «مدیر» بنویسید و در غیر این صورت «کاربر عادی». توجه کنید SESSION_USER() ممکن است با @host برگردد و لازم است قبل از مقایسه، قسمت قبل از @ را استخراج کنید. این روال در کلاینت MySQL کار می‌کند و با USER() هم مشابه است.

گزارش

1 پاسخ

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

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