我是MySQL的新手,所以这可能是一个愚蠢的问题,但在搜索和搜索SO之后,我还没有找到答案。
我尝试做的只是获取给定表上插入或更新的调用用户的用户ID,而且只获取用户ID。我在这个问题上没有要求任何触发器帮助,所以不用担心。
SELECT user()
给予:user@[IP Address]
SELECT current_user()
给予:user@%
次要问题:我只想要user
我的问题:
我是以错误的方式解决这个问题吗?
是否有更清晰,更易读的方式来获取user
而不必使用substr(user(),1,instr(user(),'@')-1)
之类的内容?我在Oracle中编写了一些触发器,我可以将USER
值用于我需要的地方。
提前致谢
答案 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'