mysql - 如果第一个 SELECT 返回一个空集,则另一个 SELECT

标签 mysql control-flow

这是我的 table :

  id    id_1     camp 
 1        0         x1     
 2        0         x2
 3        0         x3
 4        1         x4
 5        1         x5
 6        1         x6
 7        3         x7
 8        3         x8
 9        3         x9 

我需要一个 SQL,如果没有 id_1 为“x”的行,它应该返回 id_1 为 0 的行。例如,如果我选择 id_1 = 2,它将返回 select * whereid_1= 0

这可以在一个语句中完成吗?我在使用 IF EXISTS 或 CASE 时运气不佳。语法...

一如既往的感谢

最佳答案

SELECT SQL_CALC_FOUND_ROWS id, id_1, camp
FROM your_table
WHERE id_1 = 2

UNION ALL

SELECT id, id_1, camp
FROM your_table
WHERE 
FOUND_ROWS() = 0 AND id_1 = 0;

关于mysql - 如果第一个 SELECT 返回一个空集,则另一个 SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4062313/

相关文章:

mysql - 删除mysql表中重复的旧记录

mysql - 最新版本的MySQL系统表可以转换成InnoDB吗?

swift - 开关语句 : converting from if-statement to switch statement in swift

ssis - 根据条件控制 SSIS 包中的流程

c++ - 基于两个 bool 变量的分支

javascript - 如何改变该方法的控制通量变量

Php 将更多数组保存到 MySQL 中

PHP mysql查询结果转入多维数组

MySQL更新where子句被忽略

assembly - 如何从汇编生成控制流图?