Pertanyaan untuk padanan tepat rentetan dipisahkan koma dalam MySQL
Mencari nilai tertentu selalunya memberikan cabaran apabila bekerja dengan medan MySQL yang mengandungi rentetan dipisahkan koma. Sebagai contoh, apabila anda membuat pertanyaan untuk semua rekod dengan nilai tertentu dalam rentetan, anda mungkin secara tidak sengaja mendapatkan semula rekod yang mengandungi nilai lain untuk nombor sasaran.
Pertimbangkan pertanyaan berikut:
<code class="language-sql">select * from shirts where colors like '%1%'</code>
Pertanyaan ini direka untuk mendapatkan semula semua baju dengan warna merah (warna=1). Walau bagaimanapun, ia juga mendapatkan semula baju dengan warna kelabu (=12) dan oren (=15) kerana warna ini mengandungi nombor 1.
Untuk menyelesaikan masalah ini, anda boleh menambah baik pertanyaan untuk memastikan ia hanya memilih nilai warna yang tepat yang anda cari. Berikut adalah dua kaedah yang biasa digunakan:
1. Sambungkan koma
Kaedah ini melibatkan penambahan koma di kiri dan kanan nilai sasaran. Melakukan ini memastikan bahawa rentetan carian hanya sepadan dengan nilai yang betul-betul sama dengan nilai yang dikehendaki.
<code class="language-sql">select * from shirts where CONCAT(',', colors, ',') like '%,1,%'</code>
2. Gunakan find_in_set
Fungsifind_in_set
juga boleh digunakan untuk mencapai hasil yang diinginkan. Fungsi ini mengambil dua parameter:
Apabila find_in_set
mengembalikan nilai yang lebih besar daripada 0, ini bermakna nilai sasaran wujud dalam rentetan. Berikut ialah contoh pertanyaan:
<code class="language-sql">select * from shirts where find_in_set('1', colors) > 0</code>
Dengan menggunakan salah satu daripada dua kaedah ini, anda boleh memastikan bahawa pertanyaan MySQL anda mendapatkan semula rekod dengan tepat untuk nilai warna tepat yang anda minati, tanpa mengambil padanan yang tidak diingini.
Atas ialah kandungan terperinci Bagaimana untuk Membuat Pertanyaan untuk Padanan Tepat dalam String MySQL Dipisahkan Koma?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!