В SQL нет такого понятия, как "список идентификаторов".У вас есть строка, которая содержит цифровые цифры и запятые.
Сохранение списка идентификаторов в виде строки - это нормально, если вам нужно использовать его только в виде строки.Но если вам нужно выполнить запросы, которые обрабатывают список как набор дискретных значений идентификаторов, вам следует нормализовать данные, сохранив один идентификатор на строку в зависимой таблице.
CREATE TABLE IdSets (
entity_id INT NOT NULL,
item_id INT NOT NULL,
PRIMARY KEY (entity_id, item_id),
FOREIGN KEY (entity_id) REFERENCES entities(entity_id)
);
Тогда вы сможете решить свою проблемус запросом JOIN
.
SELECT i.entity_id
FROM IdSets AS i LEFT OUTER JOIN TestSets AS t USING (item_id)
GROUP BY entity_id
HAVING COUNT(i.item_id) = COUNT(t.item_id)