یک عبارت 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() عمل میکند و اگر نیاز به فقط نام کاربری دارید حتما قسمت قبل از @ را جدا کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای نمایش نام کاربری جلسه از SESSION_USER() استفاده کنید و با SUBSTRING_INDEX(SESSION_USER(), '@', 1) نام کاربری را از بخش میزبان جدا کنید. سپس با یک CASE WHEN یا IF مقایسه کنید و اگر برابر با 'admin' بود، خروجی را «مدیر» بنویسید و در غیر این صورت «کاربر عادی». توجه کنید SESSION_USER() ممکن است با @host برگردد و لازم است قبل از مقایسه، قسمت قبل از @ را استخراج کنید. این روال در کلاینت MySQL کار میکند و با USER() هم مشابه است.
گزارش