Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте!
Есть запрос вида:
SELECT * FROM table WHERE table.id IN (SELECT id2 FROM table2 WHERE table2.id2=1)
Причем, в ячейке table2.id2=1 храниться значение VARCHAR = 1,2,3
То есть по сути не вложенный запрос должен иметь вид:
SELECT * FROM table WHERE table.id IN (1,2,3)
Но почему то выборка идет не по 1,2,3, а только по 1.
Как быть, в чем может быть проблема?
Спасибо!
Неактивен
Потому что в подзапросе для IN список должен быть в виде колонки, а не в виде строки со списком значений.
WHERE table.id IN (что-то) - то же самое, что
WHERE table.id = раз OR table.id = два OR ...
В вашем случае это превращается в WHERE table.id = '1,2,3'.
Неактивен
А решить то как?
Неактивен
Нормализовать базу данных и выполнять тот запрос, который Вы написали.
Нормализовать подразумевает, что на каждой строке таблицы будет одно
значение, а не несколько.
Неактивен