Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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 如何设置if结果下的where条件_Mysql - Fatal编程技术网

Mysql 如何设置if结果下的where条件

Mysql 如何设置if结果下的where条件,mysql,Mysql,我有四个不同的where条件 我从外部得到2个值(A,B) 如果A和B都为空 我想在“第一个位置”条件下选择行 如果A为null而B不是,则第二个where条件 如果A不为空,B为空,则第三个为空 如果A和B都不为空,则第四个为空 让我简单地给你看一下 select * from mytable if(A ==null and B == null) first where condition if(A == null and B != null) second where cond

我有四个不同的where条件

我从外部得到2个值(A,B)

如果A和B都为空

我想在“第一个位置”条件下选择行

如果A为null而B不是,则第二个where条件

如果A不为空,B为空,则第三个为空

如果A和B都不为空,则第四个为空

让我简单地给你看一下

select * from mytable 
if(A ==null and B == null)
   first where condition
if(A == null and B != null)
   second where condition

  ......

我如何使用SQL来实现这一点呢?也许您可以使用用例子句,我想这对您来说会更容易。 这是你的问题的例子,我希望这段代码能帮助你

从mytable中选择*
其中名称=
如果A为空,B为空,则为“john”
当A为空且B不为空时,则为“doe”
...

结束

您希望满足的四组不同条件:

  • 如果A和B都为空,并且
  • 如果A为空,B为非空,并且
  • 如果A不为空,B为空,并且
  • 如果A和B都不为空,并且
  • 可以这样表达:

    WHERE (A IS NULL     AND B IS NULL     AND NAME = 'Fred')
       OR (A IS NULL     AND B IS NOT NULL AND NAME = 'Barney')
       OR (A IS NOT NULL AND B IS NULL     AND NAME = 'Wilma')
       OR (A IS NOT NULL AND B IS NOT NULL AND NAME = 'Betty')
    

    你可以参考[这个链接]()我想你可以在那里找到答案<代码>我有四个不同的where子句。
    。。。SQL查询中只有一个
    WHERE
    子句。不清楚你在这里问什么。我建议:在问题中看到“子句”的地方用“条件”一词代替