sql >> Databasteknik >  >> RDS >> Mysql

Hur man söker efter flera värden separerade med kommatecken i mysql

Jag skulle säga att här är din datastruktur helt felaktig.

Det skulle vara en bättre lösning att inte lagra flera värden i ett fält med något kommaseparerat format, utan använda tre tabeller, definierade på detta sätt:

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


Med det söker du efter poster i searchtest som har specifika sökord skulle vara så enkelt 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'


Och dessutom måste du söka efter söktestposter med ett specifikt namn :

select *
from searchtest
where name = 'trophy1'


  1. MySQL ordning efter kategori och underkategori

  2. Problem med att beställa tecken med accent i PostgreSQL 8.4

  3. ASP.NET Medlemskap/Rollleverantörer för MySQL?

  4. Hur man kombinerar två SQL-frågor med olika ORDER BY-satser