Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mengapa null<>null=null di mysql

Karena setiap operator perbandingan di atas NULL muncul dalam filter sql harus (dan memang) membuat baris tidak dipilih.

Anda harus menggunakan operator aman nol <=> untuk membandingkan dengan kolom yang berisi NULL nilai dan NOT NULL lainnya nilai tetapi <=> akan mengembalikan 1 ketika kedua operan NULL karena NULL tidak pernah dianggap sama dengan NULL .

Ini adalah contoh situasi di mana null safe operator berguna:

Anda memiliki meja:

Phones
----
Number
CountryCode (can be NULL) 

Dan Anda ingin memilih semua nomor telepon yang tidak berasal dari Spanyol (kode negara 34). Percobaan pertama biasanya:

SELECT Number FROM Phones WHERE CountryCode <> 34;

Tetapi Anda melihat bahwa ada ponsel tanpa kode negara (nilai NULL) yang tidak terdaftar dan Anda ingin memasukkannya ke dalam hasil karena bukan dari Spanyol:

SELECT Number FROM Phones WHERE CountryCode <=> 34;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Encoder Python JSON untuk mendukung datetime?

  2. Mysql - Mysql2::Error:Nilai string salah:

  3. Doctrine2 - Beberapa sisipan dalam satu kesempatan

  4. Bagaimana menerapkan tipe data char(N) alih-alih varchar(N) di bidang model Django

  5. MYSQL - Pesan nilai stempel waktu secara berurutan, dari yang terbaru ke yang terlama?