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

Накарайте mysql да игнорира условието where

SELECT *
FROM foo
WHERE id = $id
AND ( bar = $baz OR $baz [equals null, empty string, zero, whatever] )

Не знам дали MySQL някога е използвал оценка на късо съединение в своя план за изпълнение, но може да е полезно първо да се постави по-евтиното сравнение, като:

SELECT *
FROM foo
WHERE id = $id
AND ( $baz [equals null, empty string, zero, whatever] OR bar = $baz )

Можете да използвате тази методология с множество параметри.

SELECT *
FROM foo
WHERE id = $id
AND ( $baz [equals null, empty string, zero, whatever] OR bar = $baz )
AND ( $x = 0 or x = $x )
AND ( $y IS NULL OR y = $y )

-- etc.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Получаване на общия брой редове при използване на LIMIT?

  2. Как мога да се свържа с MySQL база данни с помощта на Scala?

  3. Не мога да извлека данни от mysql база данни в ListView в моето приложение за Android

  4. Как да преименувам колона с първичен ключ в MySQL?

  5. Elastic Beanstalk не създава RDS параметри