MYSQL如果选择查询返回0行,那么另一个选择查询?
如果select * from table where x=1
返回0行,那么我需要select * from table where x=2 [or
some other query]。是否可以在带有条件语句的单个MySQL查询中执行此操作?
所有答案均UNION
有效,但前提是两个查询均从同一表(或具有相同列数的表)中选择。如果第二个查询应用于具有联接的其他表上怎么办?
让我写下我的查询以使问题更清楚:
第一:
SELECT table1.a, table2.b from table1 LEFT JOIN table2 ON table2.x= table1.xWHERE .....
如果第一个结果为空,则:
第二名:
SELECT table1.a FROM table1 WHERE ....
如果返回第一个查询,我将使用第一个查询的行,否则将使用第二个查询。
回答:
从我刚刚进行的快速测试来看,这似乎可行,并且无需检查x=1
两次是否存在。
SELECT SQL_CALC_FOUND_ROWS *FROM mytable
WHERE x = 1
UNION ALL
SELECT *
FROM mytable
WHERE
FOUND_ROWS() = 0 AND x = 2;
编辑:在您对问题的澄清后,显然上述两个查询需要与UNION兼容才能起作用。
您更新的问题的答案是“否”。这在单个查询中是不可能的。您将需要使用一些条件过程逻辑来执行所需的查询。
以上是 MYSQL如果选择查询返回0行,那么另一个选择查询? 的全部内容, 来源链接: utcz.com/qa/414900.html