Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MYSQL se uma consulta de seleção retornar 0 linhas, então outra consulta de seleção?


Isso parece funcionar a partir de um teste rápido que acabei de fazer e evita a necessidade de verificar a existência de x=1 duas vezes.
SELECT SQL_CALC_FOUND_ROWS *
FROM mytable
WHERE x = 1

UNION ALL

SELECT *
FROM mytable
WHERE 
FOUND_ROWS() = 0 AND x = 2;

Edit:Após o seu esclarecimento à pergunta, obviamente, as 2 consultas precisarão ser compatíveis com UNION para que o acima funcione.

A resposta para sua pergunta atualizada é Não. Isso não é possível em uma única consulta. Você precisaria usar alguma lógica de procedimento condicional para executar a consulta desejada.