MySql:使用concat不起作用,为什么?

时间:2012-05-14 11:36:05

标签: mysql substring concat

我有这个问题:

update sales_flat_quote set customer_email = (concat(select substring(md5(rand()) from 1 for 20), '@example.com'));

它给了我这个错误: 3你的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第6行SQL1.sql 6 1 附近使用正确的语法。我想用static @ example.com字符串连接substring select的结果。

查询有什么问题?

谢谢!

2 个答案:

答案 0 :(得分:2)

select substring(md5(rand()) from 1 for 20返回结果集,而不是字符串。

正确的做法是update sales_flat_quote set customer_email = (concat(substring(md5(rand()) from 1 for 20), '@example.com'));

答案 1 :(得分:1)

要使用子选择,必须将其括在括号内:

update sales_flat_quote set customer_email = concat(
        (select substring(md5(rand()) from 1 for 20)), 
        '@example.com');

请注意,在这种情况下,您不需要使用子选择:将为每一行调用rand()