uuuu, если вас не смущает что вы с сервера несколько раз будете вытягивать одни и те-же данные - можете через union делать. но я не вижу зачем с бекенда спрашивать одну и ту-же запись несколько раз, если можно достать 1 раз и потом 3 раза с ней что-то сделать.
и да - не должно. `WHERE 7 IN(4,5,6,7,7,7);` вернет 1 и запись попадет в финальный датасет. Перечитайте документацию, этот синтаксис работает не так как вы думаете
Погодите, а какую задачу вы пытаетесь решить? Запрос извлекает вам те данные, которые есть в вашей таблице. Зачем вам строку с id=7 извлекать трижды?
И тем более не понятно, почему:
Только в IN(4,5,6,7,7,7) всегда разное количество данных, может дойти и до 5к
Расскажитье нам, что у вас в таблице и что вы хотите получить. Может вы вообще не тем путем идете.
SELECT
a.name
FROM
table1 a,
(
SELECT 4 id UNION ALL
SELECT 5 UNION ALL
SELECT 6 UNION ALL
SELECT 7 UNION ALL
SELECT 7 UNION ALL
SELECT 7
) b
WHERE
a.id = b.id;