MySQL : rechercher des colonnes correspondant à des entiers dans une colonne de texte (CSV)
P粉336536706
P粉336536706 2024-04-04 18:03:46
0
1
452

Ce tableau comporte une colonne de texte qui stocke les références à d'autres enregistrements au format CSV, par exemple :

+----+----------------+
| 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

La pseudo-requête ci-dessus doit renvoyer les lignes 90 et 96.

Je veux faire correspondre si une certaine valeur exacte que j'ai se trouve sur ce champ.

Je pense qu'utiliser LIKE pourrait ne pas fonctionner car je ne sais pas si la virgule avant ou après existe.

Ai-je des alternatives ?

P粉336536706
P粉336536706

répondre à tous(1)
P粉885035114

peut être réalisé en utilisant FIND_IN_SET :

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

Démo ici

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal