recherche

Maison  >  Questions et réponses  >  le corps du texte

MySQL : rechercher des colonnes correspondant à des entiers dans une colonne de texte (CSV)

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粉336536706P粉336536706261 Il y a quelques jours467

répondre à tous(1)je répondrai

  • P粉885035114

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

    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

    répondre
    0
  • Annulerrépondre