mysql SELECT列值依赖于另一列

时间:2011-12-14 23:47:01

标签: mysql sql

我有一张这样的表:

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的文档中轻易搞清楚。

由于

2 个答案:

答案 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)