Nilai pertanyaan dalam rentetan dipisahkan koma dalam MySQL
P粉763748806
P粉763748806 2023-08-17 14:24:54
0
2
478
<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>
P粉763748806
P粉763748806

membalas semua(2)
P粉036800074

FIND_IN_SETadalah rakan anda dalam kes ini

select * from shirts where FIND_IN_SET(1,colors)
P粉254077747

Kaedah klasik ialah menambah koma di sebelah kiri dan kanan:

select * from shirts where CONCAT(',', colors, ',') like '%,1,%'

Tetapi find_in_set juga berfungsi:

select * from shirts where find_in_set('1',colors) <> 0
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan