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

Apa operator <=> ini di MySQL?

TL;DR

Ini adalah NULL aman sama operator.

Seperti = regular biasa operator, dua nilai dibandingkan dan hasilnya adalah 0 (tidak sama) atau 1 (setara); dengan kata lain:'a' <=> 'b' menghasilkan 0 dan 'a' <=> 'a' menghasilkan 1 .

Berbeda dengan = regular biasa operator, nilai NULL tidak memiliki arti khusus sehingga tidak pernah menghasilkan NULL sebagai hasil yang mungkin; jadi:'a' <=> NULL menghasilkan 0 dan NULL <=> NULL menghasilkan 1 .

Kegunaan

Ini bisa berguna ketika kedua operan mungkin berisi NULL dan Anda memerlukan hasil perbandingan yang konsisten antara dua kolom.

Kasus penggunaan lain adalah dengan pernyataan yang disiapkan, misalnya:

... WHERE col_a <=> ? ...

Di sini, placeholder dapat berupa nilai skalar atau NULL tanpa harus mengubah apa pun tentang kueri.

Operator terkait

Selain <=> ada juga dua operator lain yang dapat digunakan untuk membandingkan NULL , yaitu IS NULL dan IS NOT NULL; mereka adalah bagian dari standar ANSI dan oleh karena itu didukung pada database lain, tidak seperti <=> , yang khusus untuk MySQL.

Anda dapat menganggapnya sebagai spesialisasi <=> . MySQL :

'a' IS NULL     ==> 'a' <=> NULL
'a' IS NOT NULL ==> NOT('a' <=> NULL)

Berdasarkan ini, kueri (fragmen) khusus Anda dapat dikonversi ke yang lebih portabel:

WHERE p.name IS NULL

Dukungan

Standar SQL:2003 memperkenalkan predikat untuk ini, yang bekerja persis seperti <=> . MySQL operator, dalam bentuk berikut:

IS [NOT] DISTINCT FROM 

Berikut ini didukung secara universal, tetapi relatif kompleks:

CASE WHEN (a = b) or (a IS NULL AND b IS NULL)
     THEN 1
     ELSE 0
END = 1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Data Biner di MySQL

  2. MySQL - Kontrol baris mana yang dikembalikan oleh grup oleh

  3. GALAT 2002 (HY000):Tidak dapat terhubung ke server MySQL lokal melalui soket '/var/run/mysqld/mysqld.sock' (2)

  4. Cara efisien menemukan lokasi terdekat di dekat lokasi tertentu

  5. Cara Menghitung Selisih Antara Dua Tanggal di MySQL