sql >> Databasteknik >  >> RDS >> Mysql

MYSQL om en urvalsfråga returnerar 0 rader då en annan väljfråga?

Detta verkar fungera utifrån ett snabbtest jag just gjorde och undviker behovet av att kontrollera om det finns x=1 dubbelt.

SELECT SQL_CALC_FOUND_ROWS *
FROM mytable
WHERE x = 1

UNION ALL

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

Edit:Efter ditt förtydligande av frågan måste uppenbarligen de två frågorna vara UNION-kompatibla för att ovanstående ska fungera.

Svaret på din uppdaterade fråga är nej. Detta är inte möjligt i en enda fråga. Du skulle behöva använda någon villkorlig procedurlogik för att utföra önskad fråga.



  1. Hur redigerar man en lagrad procedur i MySQL?

  2. MySQL Trigger kan inte uppdatera tabellen - får ERROR 1442

  3. Vän till en vän i PHP/MySQL?

  4. Utöka EM Grid Control till nya noder