Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Pesquisando uma coluna contendo dados CSV em uma tabela MySQL para a existência de valores de entrada


Em primeiro lugar, o banco de dados obviamente não deve conter valores separados por vírgulas, mas esperamos que você já esteja ciente disso. Se a tabela fosse normalizada, você poderia facilmente obter os itens usando uma consulta como:
select distinct i.Itemid
from Item i
inner join ItemFeature f on f.ItemId = i.ItemId
where f.Feature in ('AB', 'PQ')

Você pode combinar as strings nos valores separados por vírgulas, mas não é muito eficiente:
select Id
from Item
where
  instr(concat(',', Features, ','), ',AB,') <> 0 or
  instr(concat(',', Features, ','), ',PQ,') <> 0