我有一张这样的表:
ID | Type | woof | meow
1 | dog | 1 | 0
2 | cat | 1 | 1
3 | dog | 0 | 0
4 | cat | 0 | 1
我想SELECT DISTINCT id, type WHERE
如果type = dog然后woof = 1,如果type = cat则meow = 1。所以我的期望输出将包括第1,2和4行。
我该怎么做?我假设有某种奇特的IF或CASE语句,但我无法从mysql的文档中轻易搞清楚。
由于
答案 0 :(得分:5)
您可以使用AND和OR:
SELECT DISTINCT id, type
FROM yourtable
WHERE (type='dog' AND woof=1) OR (type='cat' AND meow=1)
另请注意,如果您的id
字段是唯一的(并且我猜它是),则此处不需要DISTINCT。
答案 1 :(得分:4)
只需使用简单的布尔代数:
SELECT DISTINCT id, type
FROM table
WHERE
(type = 'dog' AND woof = 1) OR
(type = 'cat' AND meow = 1)