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

Sådan søger du flere værdier adskilt af kommaer i mysql

Jeg vil sige, at her er din datastruktur helt forkert.

Det ville være en bedre løsning ikke at gemme flere værdier i et felt ved hjælp af et kommasepareret format, men bruge tre tabeller, defineret på denne måde:

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


Med det, søgning efter poster i searchtest der har specifikke søgeord ville være så simpelt som:

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'


Og desuden skulle du søge efter søgetestposter med et specifikt navn :

select *
from searchtest
where name = 'trophy1'


  1. PostgreSQL datoforskel

  2. Flydende Nhibernate:Kan ikke oprette databaseforbindelse til MySQL

  3. mysql vælg distinkt, men seneste række

  4. gruppe efter klausul kolonnenavn uden at vælge det i udvalgslisten