MySQL使用Current_User()作为过滤器



我遇到的问题相当简单,但我似乎找不到解决方案。我只想查询mysql.user并过滤current_user()上的结果。但是,当我使用以下查询时:

SELECT *
FROM mysql.user
WHERE user = current_user();

我得到了一个Empty set (0.00sec),但我100%确定用户存在。

在这个例子中,我用用户'root'@'localhost'连接到mysql,这个用户肯定存在于mysql.user中。

我假设我使用这个错误,但我已经看过了几个帖子和各种不同的MySQL,但无法找到这个特定问题的答案。

感谢

CURRENT_USER()返回user@host形式的字符串,而mysql.user.User似乎只是user部分,mysql.user.Hosthost部分。也许你的意思是:

SELECT
*
FROM
mysql.user
WHERE CONCAT
(
mysql.user.User,
'@',
mysql.user.Host
) = CURRENT_USER()

最新更新