2

这两个命令有MySQL什么区别?

它们完美地工作,结果总是一样的:

set @numRecords = (select count(*) from config);

set @numRecords := (select count(*) from config);

谢谢大卫

4

2 回答 2

4

引用 MySQL 5.7 参考手册,第 10.4 节用户定义的变量

对于 SET,= 或 := 都可以用作赋值运算符。

您还可以在 SET 以外的语句中为用户变量赋值。在这种情况下,赋值运算符必须是 := 而不是 =,因为后者在非 SET 语句中被视为比较运算符 =

于 2016-06-16T21:36:38.590 回答
3

"=" 不明确,可能是比较运算符。":=" 总是被解释为赋值运算符。此信息可在http://dev.mysql.com/doc/refman/5.7/en/assignment-operators.html找到。

于 2016-06-16T21:39:11.003 回答