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

Durchsuchen einer Spalte mit CSV-Daten in einer MySQL-Tabelle auf das Vorhandensein von Eingabewerten

Zunächst einmal sollte die Datenbank natürlich keine kommagetrennten Werte enthalten, aber das ist Ihnen hoffentlich schon bewusst. Wenn die Tabelle normalisiert wäre, könnten Sie die Elemente leicht mit einer Abfrage wie der folgenden abrufen:

select distinct i.Itemid
from Item i
inner join ItemFeature f on f.ItemId = i.ItemId
where f.Feature in ('AB', 'PQ')

Sie können die Zeichenfolgen in den durch Kommas getrennten Werten abgleichen, aber das ist nicht sehr effizient:

select Id
from Item
where
  instr(concat(',', Features, ','), ',AB,') <> 0 or
  instr(concat(',', Features, ','), ',PQ,') <> 0