Nilai pertanyaan dalam rentetan dipisahkan koma dalam MySQL
P粉763748806
2023-08-17 14:24:54
<p>Saya mempunyai medan <code>COLORS (varchar(50))</code> dalam jadual <code>SHIRTS</code> yang mengandungi rentetan dipisahkan koma seperti < ;kod>1,2 ,5,12,15,</kod>. Setiap nombor mewakili warna yang tersedia. </p>
<p>Apabila menjalankan pertanyaan <kod>pilih * daripada baju dengan warna seperti '%1%'</code> untuk mendapatkan semua baju yang berwarna merah (warna=1), saya juga mendapat warna kelabu ( = 12) dan oren (=15) baju. </p>
<p>Bagaimanakah saya harus menulis semula pertanyaan supaya ia hanya memilih semua warna dengan warna 1 dan bukannya semua warna yang mengandungi nombor 1? </p>
FIND_IN_SETadalah rakan anda dalam kes ini
Kaedah klasik ialah menambah koma di sebelah kiri dan kanan:
Tetapi find_in_set juga berfungsi: