Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como pesquisar vários valores separados por vírgulas no mysql


Eu diria que, aqui, sua estrutura de dados não está certa.

Seria uma solução melhor não armazenar vários valores em um campo usando algum formato separado por vírgulas, mas usar três tabelas, definidas desta forma:
  • searchtest
    • id
    • name
  • keywords
    • id
    • word
  • keywords_searchtest
    • id_keyword
    • id_searchtest


Com isso, procurando por entradas em searchtest que têm palavras-chave específicas seria tão simples quanto:
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'


E, além disso, você teria que procurar por entradas de searchtest com um nome específico:
select *
from searchtest
where name = 'trophy1'