Mysql
 sql >> Base de données >  >> RDS >> Mysql

La requête SQL IF SELECT est nulle, puis effectuez une autre requête

Il existe un moyen simple d'utiliser uniquement sql.

Définissez votre première requête en tant que table temporaire, avec union all, filtrez la deuxième requête avec le nombre de tables temporaires.

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

Cette requête renverra les enregistrements de la deuxième table.

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

Et si la requête temporaire a un résultat, ne renvoie que la requête temporaire.

Vous pouvez tester avec sql fiddle ici .