Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql选择依赖于另一列的列值_Mysql_Sql - Fatal编程技术网

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)