sql >> Databáze >  >> RDS >> Mysql

Prohledávání sloupce obsahujícího data CSV v tabulce MySQL na existenci vstupních hodnot

Za prvé, databáze by samozřejmě neměla obsahovat hodnoty oddělené čárkami, ale to už snad víte. Pokud byla tabulka normalizována, mohli byste položky snadno získat pomocí dotazu jako:

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

Můžete porovnat řetězce v hodnotách oddělených čárkami, ale není to příliš efektivní:

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


  1. Jak zrychlit SQL dotazy

  2. Jak GET_FORMAT() funguje v MariaDB

  3. Jak MySQL Store Enums?

  4. Amazon RDS nemůže provést příkaz SET GLOBAL