在WHERE子句中使用MySQL变量

时间:2017-11-23 13:26:06

标签: mysql

如何在WHERE子句中正确使用MySQL变量?而不是column1,column2,column3,我得到了大量的查询,这就是为什么我认为使用变量更好的原因。不知道我做错了什么!

SELECT 
@TEST:= CASE 
    WHEN column1=1 THEN 'ONE'
    WHEN column1=2 THEN 'TWO'
    WHEN column1=2 THEN 'THREE'
    ELSE 'Unknown'
END AS test
FROM 
    table1
WHERE
    @TEST= 'ONE'

1 个答案:

答案 0 :(得分:1)

我认为WHERESELECT之前应用评估,这意味着你的查询完全不可能(不是100%肯定)。

你可以这样做,基本上是一样的:

SELECT 
    column1 AS TEST
FROM 
    table1
WHERE
    (column1 = 1 AND ONE = 'ONE')
OR  (column1 = 2 AND TWO = 'ONE')
OR  (column1 = 3 AND THREE = 'ONE')
OR  Unknown = 'ONE'