从MySQL调用用户ID(仅限)

时间:2012-02-01 20:56:35

标签: mysql

我是MySQL的新手,所以这可能是一个愚蠢的问题,但在搜索和搜索SO之后,我还没有找到答案。

我尝试做的只是获取给定表上插入或更新的调用用户的用户ID,而且只获取用户ID。我在这个问题上没有要求任何触发器帮助,所以不用担心。

SELECT user()

给予:user@[IP Address]

SELECT current_user()

给予:user@%

次要问题:我只想要user

我的问题:

我是以错误的方式解决这个问题吗?

是否有更清晰,更易读的方式来获取user而不必使用substr(user(),1,instr(user(),'@')-1)之类的内容?我在Oracle中编写了一些触发器,我可以将USER值用于我需要的地方。

提前致谢

2 个答案:

答案 0 :(得分:4)

手册页says

SELECT SUBSTRING_INDEX(USER(),'@',1);

答案 1 :(得分:3)

文档明确指出使用SUBSTRING_INDEX。见http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_user

引用:

  

您只能提取用户名部分,如下所示:

mysql> SELECT SUBSTRING_INDEX(USER(),'@',1);
        -> 'davida'