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

MySQL:изберете * от таблицата, където col IN (null, ) е възможно без ИЛИ

SELECT  *
FROM    mytable
WHERE   COALESCE(col, '') = ''

Забележете обаче, че OR заявката ще бъде много по-ефективна, ако колоната е индексирана:

SELECT  *
FROM    mytable
WHERE   col = '' OR col IS NULL

Това ще използва ref_or_null път за достъп до индекса.

Ако трябва да изберете от списък със стойности заедно с NULLs , просто поставете всички ненулеви стойности в списъка и добавете един единствен OR IS NULL условие:

SELECT  *
FROM    mytable
WHERE   col IN ('val1', 'val2', 'val3') OR col IS NULL

Това ще използва индекс на col също.



  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 LOAD XML LOCAL INFILE, ако редовете ми нямат „име“?

  2. Изберете ред с най-новата дата на потребител

  3. Брояч на приращение на MySQL SELECT

  4. Дата и час срещу дата и час Mysql

  5. Параметризиране на името на файла в MYSQL LOAD DATA INFILE