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

La query SQL IF SELECT è nulla, quindi esegui un'altra query

Ci sono alcuni modi semplici che usano solo sql.

Definisci la tua prima query come tabella temporanea, con union all, filtra la seconda query con il conteggio della tabella temporanea.

with temp as (select * from t1 where 1=0)
select * from temp
union all
select * from t2 where (select count(*) from  temp) =0

Questa query restituirà i record della seconda tabella.

with temp as (select * from t1 )
select * from temp
union all
select * from t2 where (select count(*) from  temp) =0

E se la query temporanea ha un risultato, restituisce solo la query temporanea.

Puoi testare con sql fiddle qui .