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

MYSQL, ако заявка за избор връща 0 реда, тогава друга заявка за избор?

Това изглежда работи от бърз тест, който току-що направих, и избягва необходимостта да проверявам за съществуването на x=1 два пъти.

SELECT SQL_CALC_FOUND_ROWS *
FROM mytable
WHERE x = 1

UNION ALL

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

Редактиране:След вашето изясняване на въпроса очевидно 2-те заявки трябва да са съвместими с UNION, за да работят по-горе.

Отговорът на актуализирания ви въпрос е Не. Това не е възможно в една заявка. Ще трябва да използвате някаква условна процедурна логика за да изпълните желаната заявка.



  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 ODBC 5.1 връща грешен тип данни към ADODB

  2. Резултат от mysql заявка в php масив

  3. mysql импортиране на windows

  4. MySQL - Как да търся точно съвпадение на думи с LIKE?

  5. Каква е алтернативата на клаузата LIMIT в JPQL?