我对MySQL用户自定义变量的使用是否可靠?

时间:2013-10-31 18:50:50

标签: mysql

我已经阅读了很多关于在同一语句中读取/写入MySQL用户自定义变量的不安全性。这个用例看起来很简单,但我想看看别人的想法。

这里我有一张得分和体重的桌子。我正在进行排名,所以我按分数排序并对重量进行总和,直到达到我想要的数字。因为我正在使用Hibernate,所以我不能在FROM子句中进行子选择。

SELECT 
    score, weight, @val := score
FROM 
    tmp, (SELECT @runtot := 0) init
HAVING
    (@runtot := @runtot + weight) <= (7)
ORDER BY score;

这似乎相当安全,因为eval和比较是同一表达式的一部分。然后@val将被设置为评估的最后得分,我可以做一个'SELECT @VAL'来获得最后一个值。

这是否安全使用用户自定义变量?

0 个答案:

没有答案