Mysql
 sql >> Database >  >> RDS >> Mysql

Come cercare più valori separati da virgole in mysql

Direi che qui la tua struttura dei dati non è corretta.

Sarebbe una soluzione migliore non memorizzare più valori in un campo utilizzando un formato separato da virgole, ma utilizzare tre tabelle, definite in questo modo:

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


Con questo, cercare voci in searchtest che hanno parole chiave specifiche sarebbe semplice come :

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, inoltre, dovresti cercare le voci del test di ricerca con un nome specifico :

select *
from searchtest
where name = 'trophy1'