Mysql
 sql >> база данни >  >> RDS >> Mysql

SQL IF SELECT заявката е нула, след това направете друга заявка

Има някои лесни начини да използвате само sql.

Дефинирайте първата си заявка като временна таблица, с union all, филтрирайте втората заявка с броя на временната таблица.

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

Тази заявка ще върне записите на втората таблица.

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

И ако временната заявка има резултат, върнете само временна заявка.

Можете да тествате с sql fiddle тук .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изчисляване на общата продължителност на времето в MySQL

  2. Множество, но взаимно изключващи се външни ключове - това ли е пътят?

  3. Как да ускоря SELECT .. LIKE заявките в MySQL на множество колони?

  4. Защо 2 реда са засегнати в моя „INSERT ... ON DUPLICATE KEY UPDATE“?

  5. Можете ли да получите достъп до стойността за автоматично увеличение в MySQL в рамките на едно изявление?