如何在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'
答案 0 :(得分:1)
我认为WHERE
在SELECT
之前应用评估,这意味着你的查询完全不可能(不是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'