我有这个问题:
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的结果。
查询有什么问题?
谢谢!
答案 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()
。