sql >> Databasteknik >  >> RDS >> Mysql

SQL IF SELECT-frågan är null och gör sedan en annan fråga

Det finns några enkla sätt att bara använda sql.

Definiera din första fråga som en tillfällig tabell, med union all, filtrera den andra frågan med temptabellens antal.

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

Den här frågan returnerar den andra tabellens poster.

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

Och om en tillfällig fråga har resultat, returnera bara en tillfällig fråga.

Du kan testa med sql-fiol här .



  1. Hur skapar man FULLTEXT-index på flera kolumner?

  2. Dela upp avgränsat strängvärde i rader

  3. php singleton databasanslutning, är denna kod dålig praxis?

  4. Bästa tillvägagångssätt för grupperad median