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

Ricerca di una colonna contenente dati CSV in una tabella MySQL per l'esistenza di valori di input

Prima di tutto, il database ovviamente non dovrebbe contenere valori separati da virgole, ma si spera che tu ne sia già a conoscenza. Se la tabella fosse normalizzata, potresti facilmente ottenere gli elementi utilizzando una query come:

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

Puoi abbinare le stringhe nei valori separati da virgola, ma non è molto efficiente:

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