sql >> Database >  >> RDS >> Mysql

Zoeken in een kolom met CSV-gegevens in een MySQL-tabel op het bestaan ​​van invoerwaarden

Allereerst mag de database natuurlijk geen door komma's gescheiden waarden bevatten, maar hopelijk weet u dit al. Als de tabel genormaliseerd was, zou je de items gemakkelijk kunnen krijgen met een zoekopdracht als:

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

Je kunt de strings in de door komma's gescheiden waarden matchen, maar het is niet erg efficiënt:

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


  1. Hoe gegroepeerde rijen met alleen NULL-waarden selecteren?

  2. MySQL-wildcard voor =- is er een

  3. Incrementele statistieken verzamelen in 11g

  4. Is het mogelijk om voor SQL Output-clausule een kolom te retourneren die niet is ingevoegd?