Rumah  >  Soal Jawab  >  teks badan

MySQL: Cari lajur yang sepadan dengan integer dalam lajur teks (CSV).

Jadual ini mempunyai lajur teks yang menyimpan rujukan kepada rekod lain dalam format CSV, contohnya:

+----+----------------+
| id | linked_folders |
+----+----------------+
| 90 |    NULL        |
| 91 |    NULL        |
| 92 |    123,1,4,40  |
| 93 |    123,1       |
| 94 |    NULL        |
| 95 |    235,8       |
| 96 |    90          |
| 97 |    NULL        |
| 98 |    NULL        |
| 99 |    NULL        |
+----+----------------+

$id = 90;
SELECT * FROM my_table WHERE id = $id OR $id is in linked_folders

Pertanyaan pseudo di atas harus mengembalikan baris 90 dan 96.

Saya ingin memadankan jika nilai tepat tertentu yang saya ada ada pada medan ini.

Saya fikir menggunakan LIKE mungkin tidak berfungsi kerana saya tidak tahu sama ada koma sebelum atau selepas ia wujud.

Adakah saya mempunyai sebarang alternatif?

P粉336536706P粉336536706180 hari yang lalu314

membalas semua(1)saya akan balas

  • P粉885035114

    P粉8850351142024-04-05 14:04:01

    boleh dicapai menggunakan FIND_IN_SET:

    select * 
    from my_table 
    where id = 90 or FIND_IN_SET(90, linked_folders) > 0

    Demo di sini

    balas
    0
  • Batalbalas