我在尝试运行下面的查询时遇到语法错误,但我想知道是否可以执行类似的查询?所以在IN
里面有一个CASE
表达式。以下并不是我真正的查询,因此它可能看起来有点愚蠢,但这只是示例。
SELECT *
FROM `table`
WHERE `category` IN
CASE `type`
WHEN 'a' THEN ('CAT1','CAT2','CAT3')
WHEN 'b' ('CAT4')
ELSE ('undefined','n/a')
END
ORDER BY `category`
提前致谢。
最佳答案
使用OR
SELECT *
FROM `table`
WHERE ( `type` = 'a' and `category` IN ('CAT1','CAT2','CAT3') )
OR ( `type` = 'b' and `category` IN ('CAT4') )
or (`type` not in ('a','b') and `category` in ('undefined','n/a'))
关于mysql - WHERE 列 IN CASE 类型 WHEN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43932059/