Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Membuat Pertanyaan untuk Padanan Tepat dalam String MySQL Dipisahkan Koma?

Bagaimana untuk Membuat Pertanyaan untuk Padanan Tepat dalam String MySQL Dipisahkan Koma?

Linda Hamilton
Lepaskan: 2025-01-22 21:37:14
asal
626 orang telah melayarinya

How to Query for Exact Matches in Comma-Separated MySQL Strings?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

2. Gunakan find_in_set

Fungsi

find_in_set juga boleh digunakan untuk mencapai hasil yang diinginkan. Fungsi ini mengambil dua parameter:

  • Nilai sasaran yang anda cari
  • Rentetan dipisahkan koma yang anda mahu cari dalam

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>
Salin selepas log masuk

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!

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