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

нещо за ansi_nulls

С ANSI_NULLS OFF , NULL = NULL оценява на TRUE .

С ANSI_NULLS ON (по подразбиране), NULL = NULL оценява на NULL .

NULL IS NULL винаги се оценява на TRUE .

В MySQL обаче не можете да изключите ANSI_NULLS. Вероятно си мислите за MS SQL Server.

Бъдещите версии на MS SQL Server няма да поддържат ANSI_NULLS OFF , така че не бих го използвал.

Трябва да оставите ANSI_NULLS ON и използвайте IS NULL за да прецените дали нещо Е NULL.

Ако имате проблеми със запомнянето как NULL работи по подразбиране (ANSI_NULLS ON), трябва да мислите за NULL като „неизвестно „. Например, ако в стаята има двама непознати, имената им са НУЛЕВИ. Ако вашата заявка е „Еднакви ли са имената им?“ Вашият отговор Е НУЛВ.

Сега, да кажем, че Боб е в стаята само с един непознат, чието име Е НУЛВО. Отново отговорът на вашето запитване "Едни и същи ли са имената им?" Е NULL. Имайте предвид, че ако сравните нещо с NULL, отговорът ви Е NULL.



  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 enum като „Не“?

  2. MYSQL изберете общи приятели

  3. Драйверът на MySQL ODBC 5.1 връща грешен тип данни към ADODB

  4. PHP mySQL - Можете ли да върнете свързан масив с числов индекс?

  5. Как работи параметърът 'LIMIT' в sql?