当我使用变量而不是直接文本时,MYSQL脚本不会运行

时间:2011-03-31 16:13:14

标签: mysql sql

也许有人可以帮我解决一个问题。当我在脚本中使用变量(@ZZ)时,我的查询挂起并且没有完成。如果我使用直接文本而不是变量,则查询正常运行。有人能告诉我这个变量有什么问题吗?

SET @ZZ = 'asf:urhkgsdmbn.nbc,rtwyu:oneci_Xjhsdu_Hfduerksfgas20110322112751:462516432';
SET @XX = NULL;
USE some_schema;
SELECT SQL_NO_CACHE `hl`, @XX:=`id` FROM `doc` WHERE `uid` = @ZZ LIMIT 0,1;

1 个答案:

答案 0 :(得分:0)

只是一个盲目的猜测,直到你得到更好的东西......对每行评估WHERE子句,你有很多行。如果它包含一个文字,那么SQL优化器可能会以这样的方式排列表达式,即表达式只被评估一次,也许它可以更好地使用索引。但是,如果它包含一个会话变量,它可能需要为每一行反复读取该变量,因为它可能已被更改。

: -