sql >> Database >  >> RDS >> Mysql

Hoe meerdere waarden te zoeken, gescheiden door komma's in mysql

Ik zou zeggen dat je gegevensstructuur hier helemaal niet klopt.

Het zou een betere oplossing zijn om niet meerdere waarden in één veld op te slaan met een door komma's gescheiden formaat, maar drie tabellen te gebruiken, op deze manier gedefinieerd:

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


Daarbij, zoeken naar items in searchtest die specifieke zoekwoorden hebben, is zo eenvoudig als:

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'


En bovendien moet u zoeken naar zoektestitems met een specifieke naam:

select *
from searchtest
where name = 'trophy1'


  1. Automatisch gegenereerde sleutel ophalen uit rij-invoeging in lente 3 / PostgreSQL 8.4.9

  2. Converteer SQLite naar JSON

  3. Probleem met PHP en Mysql UTF-8 (speciaal teken)

  4. De IRI-Windocks Test Database Repository