cari

Rumah  >  Soal Jawab  >  teks badan

Nilai pertanyaan dalam rentetan dipisahkan koma dalam MySQL

<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粉763748806P粉763748806516 hari yang lalu495

membalas semua(2)saya akan balas

  • P粉036800074

    P粉0368000742023-08-18 10:38:23

    FIND_IN_SETadalah rakan anda dalam kes ini

    select * from shirts where FIND_IN_SET(1,colors)

    balas
    0
  • P粉254077747

    P粉2540777472023-08-18 00:12:51

    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

    balas
    0
  • Batalbalas