Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MYSQL, jeśli zapytanie wybierające zwraca 0 wierszy, a następnie inne zapytanie wybierające?

Wygląda na to, że działa to z szybkiego testu, który właśnie wykonałem i pozwala uniknąć konieczności sprawdzania istnienia x=1 dwa razy.

SELECT SQL_CALC_FOUND_ROWS *
FROM mytable
WHERE x = 1

UNION ALL

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

Edycja:po wyjaśnieniu pytania, oczywiście, 2 zapytania będą musiały być kompatybilne z UNION, aby powyższe zadziałało.

Odpowiedź na Twoje zaktualizowane pytanie brzmi:Nie. Nie jest to możliwe w przypadku pojedynczego zapytania. Będziesz musiał użyć warunkowej logiki proceduralnej aby wykonać żądane zapytanie.



  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:Wybierz wykonanie zapytania i czas pobierania wyników wzrasta wraz z liczbą połączeń

  2. Jaki to format?

  3. JSON_OBJECT() – Utwórz obiekt JSON z listy par klucz/wartość w MySQL

  4. Wyszukiwanie pełnotekstowe MySQL dla słów z trzema lub mniej literami

  5. Maksymalny rozmiar tabeli dla bazy danych MySQL