Если я выполню этот запрос

SELECT user_ids FROM table2 WHERE `id` = 100

Я получаю запятую список: 12,45,268, user_ids - это поле varchar (255)

Если я выполню этот запрос

SELECT user_id FROM table1 WHERE group_id IN(12,45,268)

Я получаю то, что хочу

Но мне нужно

SELECT user_id FROM table1 WHERE group_id IN
(SELECT user_ids FROM table2 WHERE `id` = 100 );

Но я получаю только user_id (ы) от id = 12

Может быть проблема преобразования между varchar (255) и целочисленным идентификатором, разделенным запятыми?

Спасибо за помощь

0
Erick Boileau 14 Мар 2018 в 15:55

1 ответ

Лучший ответ

Используйте функцию MySQL INSTR (). Попробуйте вместо этого:

SELECT user_id FROM table1 WHERE 
INSTR((SELECT user_ids FROM table2 WHERE `id` = 100 LIMIT 1),group_id)>0;
1
cdaiga 14 Мар 2018 в 16:09