Rumah > pangkalan data > tutorial mysql > Mengapa Perbandingan Rentetan MySQL dengan 0 Kadangkala Kembali BENAR?

Mengapa Perbandingan Rentetan MySQL dengan 0 Kadangkala Kembali BENAR?

Patricia Arquette
Lepaskan: 2024-11-26 04:24:14
asal
829 orang telah melayarinya

Why Does MySQL's String Comparison with 0 Sometimes Return TRUE?

Perbandingan String-to-0 MySQL yang Membingungkan: Disahkan

Apabila melakukan pertanyaan MySQL, seseorang mungkin menemui hasil yang tidak dijangka: membandingkan lajur rentetan dengan 0 (sebagai nombor) secara tidak dijangka mengembalikan BENAR. Tingkah laku ini mungkin kelihatan berlawanan dengan intuisi, terutamanya apabila perbandingan berangka lain membuahkan hasil yang dijangkakan.

Menyelidiki mekanik asas MySQL, jawapannya terletak pada ciri penukaran automatiknya. MySQL mempunyai keupayaan untuk menghantar rentetan ke dalam nombor dengan lancar, berdasarkan syarat tertentu:

  • Rentetan yang bermula dengan aksara angka ditafsirkan sebagai nombor.
  • Rentetan yang tidak mempunyai aksara angka terkemuka ialah dinilai sebagai 0.

Menggunakan logik ini, kita boleh membongkar misteri 'rentetan' = 0 mengembalikan BENAR. Memandangkan 'rentetan' tidak bermula dengan nombor, MySQL mentafsirkannya sebagai 0, menghasilkan perbandingan SELECT 0 = 0, yang sudah tentu bernilai BENAR.

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa penukaran ini berlaku. tidak berlaku apabila membandingkan rentetan secara langsung. Sebagai contoh, '0string' = 'string' akan menghasilkan FALSE seperti yang dimaksudkan.

Sebagai alternatif, penukaran eksplisit menggunakan operator (seperti ) memaksa MySQL untuk menganggap rentetan sebagai nombor. Apabila menggunakan operator ' ', MySQL menjumlahkan '0string' dan 0, menukar kedua-dua nilai kepada nombor (0 0), menghasilkan nilai TRUE yang dijangkakan.

Selain itu, MySQL juga membenarkan penjumlahan rentetan yang merangkumi aksara angka. Sebagai contoh, '1abc' '2ef' berkesan diterjemahkan kepada 1 2, menghasilkan hasil yang dijangkakan sebanyak 3.

Memahami mekanik di sebalik tabir ini merungkai teka-teki perbandingan rentetan-ke-0 MySQL, membolehkan tafsiran data yang tepat dan pembinaan pertanyaan yang tepat.

Atas ialah kandungan terperinci Mengapa Perbandingan Rentetan MySQL dengan 0 Kadangkala Kembali BENAR?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan