MySQL: Cari lajur yang sepadan dengan integer dalam lajur teks (CSV).
P粉336536706
P粉336536706 2024-04-04 18:03:46
0
1
424

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粉336536706
P粉336536706

membalas semua(1)
P粉885035114

boleh dicapai menggunakan FIND_IN_SET:

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

Demo di sini

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan