mysql选择依赖于另一列的列值
我有一张这样的桌子:mysql选择依赖于另一列的列值,mysql,sql,Mysql,Sql,我有一张这样的桌子: ID | Type | woof | meow 1 | dog | 1 | 0 2 | cat | 1 | 1 3 | dog | 0 | 0 4 | cat | 0 | 1 我想选择不同的id,如果type=dog,那么woof=1,如果type=cat,那么meow=1。因此,我的预期输出将由第1、2和4行组成 我该怎么做?我用某种奇特的IF或CASE语句进行假设,但我无法从mysql的文档中轻松地理
ID | Type | woof | meow
1 | dog | 1 | 0
2 | cat | 1 | 1
3 | dog | 0 | 0
4 | cat | 0 | 1
我想选择不同的id,如果type=dog,那么woof=1,如果type=cat,那么meow=1。因此,我的预期输出将由第1、2和4行组成
我该怎么做?我用某种奇特的IF或CASE语句进行假设,但我无法从mysql的文档中轻松地理解它
谢谢您可以使用和或:
SELECT DISTINCT id, type
FROM yourtable
WHERE (type='dog' AND woof=1) OR (type='cat' AND meow=1)
另外请注意,如果您的id
字段是唯一的(我猜它是唯一的),则此处不需要使用DISTINCT。您可以使用and和OR:
SELECT DISTINCT id, type
FROM yourtable
WHERE (type='dog' AND woof=1) OR (type='cat' AND meow=1)
另外请注意,如果您的id
字段是唯一的(我猜它是唯一的),那么这里就不需要使用DISTINCT。只需使用简单的布尔代数:
SELECT DISTINCT id, type
FROM table
WHERE
(type = 'dog' AND woof = 1) OR
(type = 'cat' AND meow = 1)
只需使用简单布尔代数:
SELECT DISTINCT id, type
FROM table
WHERE
(type = 'dog' AND woof = 1) OR
(type = 'cat' AND meow = 1)