MySQL

时间:2016-06-16 21:35:12

标签: mysql stored-procedures colon-equals

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

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

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

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

由于 的Davide

2 个答案:

答案 0 :(得分:4)

引用MySQL 5.7参考手册,section 10.4 User-Defined Variables

  

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

     

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

答案 1 :(得分:2)

" ="是模棱两可的,可能是一个比较运算符。 ":="始终被解释为赋值运算符。此信息可在http://dev.mysql.com/doc/refman/5.7/en/assignment-operators.html找到。