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

MYSQL, hvis en udvalgt forespørgsel returnerer 0 rækker, så en anden udvalgt forespørgsel?

Dette ser ud til at fungere ud fra en hurtig test, jeg lige har lavet, og undgår behovet for at kontrollere eksistensen af ​​x=1 to gange.

SELECT SQL_CALC_FOUND_ROWS *
FROM mytable
WHERE x = 1

UNION ALL

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

Rediger:Efter din afklaring af spørgsmålet skal de 2 forespørgsler naturligvis være UNION-kompatible for at ovenstående virker.

Svaret på dit opdaterede spørgsmål er nej. Dette er ikke muligt i en enkelt forespørgsel. Du skal bruge en vis betinget procedurelogik for at udføre den ønskede forespørgsel.



  1. Henvisning til fremmednøgler i samme kolonne

  2. Svarende til MSSQL IDENTITY Column i MySQL

  3. Kopiér række men med nyt id

  4. Afkortning af alle tabeller i en Postgres-database