sql >> Base de Datos >  >> RDS >> Mysql

MYSQL si una consulta de selección devuelve 0 filas, ¿entonces otra consulta de selección?

Esto parece funcionar a partir de una prueba rápida que acabo de hacer y evita la necesidad de verificar la existencia de x=1 dos veces.

SELECT SQL_CALC_FOUND_ROWS *
FROM mytable
WHERE x = 1

UNION ALL

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

Editar:siguiendo su aclaración a la pregunta, obviamente, las 2 consultas deberán ser compatibles con UNION para que funcione lo anterior.

La respuesta a su pregunta actualizada es No. Esto no es posible en una sola consulta. Tendría que usar algo de lógica de procedimiento condicional para ejecutar la consulta deseada.