Rumah  >  Artikel  >  pangkalan data  >  Mengapa Pertanyaan MySQL Saya Menggunakan LIKE Gagal Memadankan Rentetan Bermula dengan \"ALA\" diikuti dengan Satu Digit?

Mengapa Pertanyaan MySQL Saya Menggunakan LIKE Gagal Memadankan Rentetan Bermula dengan \"ALA\" diikuti dengan Satu Digit?

Patricia Arquette
Patricia Arquetteasal
2024-10-26 11:34:02825semak imbas

 Why is My MySQL Query Using LIKE Failing to Match Strings Starting with

Pemadanan Regex dalam Pertanyaan MySQL

Dalam pengurusan pangkalan data, ungkapan biasa (regex) ialah alat yang berkuasa untuk mencari dan memadankan corak dalam rentetan. Sebagai contoh, anda mungkin perlu mencari rekod tertentu dalam pangkalan data berdasarkan kriteria rentetan tertentu.

Masalah: Regex dengan Operator LIKE

Anda menghadapi masalah semasa cuba mencari rekod yang bermula dengan rentetan tertentu diikuti dengan satu digit menggunakan operator LIKE. Pertanyaan anda tidak berjaya mengembalikan rekod yang sepadan, walaupun terdapat data yang berkaitan dalam jadual.

Penyelesaian: Menggunakan REGEXP Daripada LIKE

Untuk menyelesaikan isu, ia disyorkan untuk menggunakan operator REGEXP dan bukannya LIKE. REGEXP menawarkan keupayaan padanan corak yang lebih maju dan fleksibel.

Berikut ialah pertanyaan terlaras yang sepatutnya berfungsi dengan betul:

SELECT trecord FROM `tbl` WHERE (trecord REGEXP '^ALA[0-9]')

Penjelasan:

  • Watak ^ melabuhkan corak pada permulaan rentetan, memastikan ia sepadan dengan rekod yang bermula dengan "ALA."
  • Kelas aksara [0-9] sepadan dengan mana-mana digit tunggal dari 0 hingga 9.
  • Bersama-sama, '^ALA[0-9]' sepadan dengan rentetan yang bermula dengan "ALA" diikuti dengan satu digit.

Pertimbangan Tambahan

  • Pastikan enjin pangkalan data anda menyokong REGEXP, kerana sesetengah versi lama mungkin tidak.
  • Enjin innodb, yang anda gunakan, menyokong REGEXP.
  • Jika anda menghadapi sebarang masalah, sahkan bahawa konfigurasi PHP MySQL anda adalah betul.

Atas ialah kandungan terperinci Mengapa Pertanyaan MySQL Saya Menggunakan LIKE Gagal Memadankan Rentetan Bermula dengan \"ALA\" diikuti dengan Satu Digit?. 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