Rumah >pangkalan data >tutorial mysql >Bagaimanakah NULL-Safe Equals Operator () MySQL berfungsi?

Bagaimanakah NULL-Safe Equals Operator () MySQL berfungsi?

Linda Hamilton
Linda Hamiltonasal
2025-01-05 16:29:45887semak imbas

How Does MySQL's NULL-Safe Equals Operator () Work?

Operator Not Equal to NULL dalam MySQL: <=>

Apabila bekerja dengan pertanyaan SQL, anda mungkin menghadapi <=> pengendali, menimbulkan persoalan tentang maksud dan sintaksnya. Panduan ini akan memberikan pemahaman yang mendalam tentang pengendali ini dan aplikasinya.

Pemahaman <=>

The <=> operator dikenali sebagai NULL-safe equal operator. Ia serupa dengan pengendali sama rata biasa (=), tetapi dengan perbezaan penting apabila berurusan dengan nilai NULL.

Operator Sama Sama Biasa lwn. Operator Sama Sama NULL-Selamat

Operator sama biasa (=) mengembalikan 0 jika operan tidak sama dan 1 jika ia sama. Walau bagaimanapun, ia menganggap nilai NULL sebagai kes khas, menghasilkan NULL sebagai hasil dalam perbandingan sedemikian.

Pengendali <=>, sebaliknya, mengendalikan nilai NULL secara berbeza. Ia mengembalikan 0 jika operan adalah tidak sama dan 1 jika ia adalah sama, tidak kira sama ada salah satu atau kedua-dua operan adalah NULL. Dalam erti kata lain:

  • 'a' <=> 'b' menilai kepada 0
  • 'a' <=> 'a' menilai kepada 1
  • 'a' <=> NULL menilai kepada 0
  • NULL <=> NULL menilai kepada 1

Kegunaan <=>

Pengendali <=> terutamanya berguna dalam senario di mana kedua-dua operan dalam perbandingan mungkin mengandungi nilai NULL, dan anda memerlukan perbandingan yang konsisten hasil antara dua lajur.

Satu lagi aplikasi praktikal pengendali ini adalah dalam pernyataan yang disediakan, di mana pemegang tempat boleh mengendalikan kedua-dua nilai skalar dan nilai NULL dengan lancar tanpa perlu mengubah suai pertanyaan.

Pengendali Berkaitan

MySQL juga menawarkan pengendali lain untuk membandingkan nilai dengan NULL:

  • IS NULL: Menilai kepada 1 jika operan adalah NULL, dan 0 sebaliknya.
  • BUKAN NULL: Menilai kepada 1 jika operan bukan NULL, dan 0 sebaliknya.

Pengendali ini boleh dianggap sebagai pengkhususan pengendali <=> MySQL. Contohnya:

  • 'a' IS NULL bersamaan dengan 'a' <=> NULL
  • 'a' BUKAN NULL bersamaan dengan NOT('a' <=> NULL)

Sokongan dan Keserasian

Pengendali <=> adalah khusus MySQL dan tidak disokong pada pangkalan data lain.

Piawaian SQL:2003 memperkenalkan predikat, ADALAH [TIDAK] BERBEZA DARI, yang berkelakuan sama dengan MySQL <=> pengendali.

Selain itu, ungkapan kompleks berikut tetapi disokong secara universal boleh mencapai hasil yang sama:

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

Atas ialah kandungan terperinci Bagaimanakah NULL-Safe Equals Operator () MySQL berfungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn