Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So suchen Sie in MySQL nach mehreren Werten, die durch Kommas getrennt sind

Ich würde sagen, dass hier Ihre Datenstruktur nicht stimmt.

Es wäre eine bessere Lösung, mehrere Werte nicht in einem kommagetrennten Format in einem Feld zu speichern, sondern drei Tabellen zu verwenden, die so definiert sind:

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


Damit Suche nach Einträgen in searchtest die bestimmte Schlüsselwörter haben, wäre so einfach wie :

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'


Und zusätzlich müssten Sie nach Suchtesteinträgen mit einem bestimmten Namen suchen :

select *
from searchtest
where name = 'trophy1'