Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment rechercher plusieurs valeurs séparées par des virgules dans mysql

Je dirais qu'ici, votre structure de données n'est pas bonne.

Ce serait une meilleure solution de ne pas stocker plusieurs valeurs dans un champ en utilisant un format séparé par des virgules, mais d'utiliser trois tables, définies de cette façon :

  • searchtest
    • id
    • name
  • keywords
    • id
    • word
  • keywords_searchtest
    • id_keyword
    • id_searchtest


Avec cela, rechercher des entrées dans searchtest qui ont des mots-clés spécifiques serait aussi simple que :

select searchtest.*, keywords.*
from searchtest
    inner join keywords_searchtest on keywords_searchtest.id_searchtest = searchtest.id
    inner join keywords on keywords.id = keywords_searchtest.id_keyword
where keywords.word = 'test2'


Et, en plus, vous devrez rechercher des entrées de test de recherche avec un nom spécifique :

select *
from searchtest
where name = 'trophy1'