sql >> Base de Datos >  >> RDS >> Mysql

Cómo buscar valores múltiples separados por comas en mysql

Yo diría que, aquí, su estructura de datos no es la correcta.

Sería una mejor solución no almacenar varios valores en un campo usando algún formato separado por comas, sino usar tres tablas, definidas de esta manera:

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


Con eso, buscando entradas en searchtest que tienen palabras clave específicas sería tan simple como:

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'


Y, además, tendría que buscar entradas de prueba de búsqueda con un nombre específico:

select *
from searchtest
where name = 'trophy1'