Mysql
 sql >> Base de données >  >> RDS >> Mysql

Recherche d'une colonne contenant des données CSV dans une table MySQL pour l'existence de valeurs d'entrée

Tout d'abord, la base de données ne doit bien sûr pas contenir de valeurs séparées par des virgules, mais nous espérons que vous en êtes déjà conscient. Si la table était normalisée, vous pourriez facilement obtenir les éléments en utilisant une requête comme :

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

Vous pouvez faire correspondre les chaînes dans les valeurs séparées par des virgules, mais ce n'est pas très efficace :

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