Что вам не хватает, так это то, что строка со значением '1,2,3'
не является списком из трех целых чисел.Это одна строка.
Если вы хотите, чтобы x IN (SELECT y FROM z)
вел себя так же, как x IN (1,2,3)
, тогда ваш подзапрос должен вернуть три элемента со значениями 1
, 2
и 3
.
В сети есть функции Split () , которые принимают строку и возвращают набор записей, состоящий из нескольких целых чисел.И это может исправить вашу проблему.
Но тот факт, что у вас есть одна запись с одним полем, содержащим несколько значений, является признаком более глубокой проблемы.Вы никогда не должны хранить несколько значений в реляционной базе данных как одну строку.Вместо этого сохраните несколько записей или несколько полей.