Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL se una query di selezione restituisce 0 righe, un'altra query di selezione?

Questo sembra funzionare da un rapido test che ho appena fatto ed evita la necessità di verificare l'esistenza di x=1 due volte.

SELECT SQL_CALC_FOUND_ROWS *
FROM mytable
WHERE x = 1

UNION ALL

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

Modifica:in seguito al tuo chiarimento alla domanda, ovviamente, le 2 domande dovranno essere compatibili con UNION affinché quanto sopra funzioni.

La risposta alla tua domanda aggiornata è No. Questo non è possibile in una singola query. Dovresti usare un po' di logica procedurale condizionale per eseguire la query desiderata.