Задать вопрос
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/

Как вывести повторяющиеся строки в запросе к MySQL «WHERE IN (1,2,3)»?

Здравствуйте!
Возникла такая ситуация:
есть запрос к базе данных:
"SELECT * FROM $table WHERE id IN $id"
где $id = (1,2,2,3)
База возвращает только 3 строки (так как "2" повторяется), а мне нужно все 4. Т.е. повторяющиеся строки тоже необходимо взять повторно и в дальнейшем вывести. Как это возможно реализовать?

Заранее спасибо!
  • Вопрос задан
  • 382 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 2
@vdem
Средствами SQL ИМХО никак. Пост-обработку результата запроса сделать. По возвращенным записям построить структуру "ключ-значение" (с id в качестве ключа), затем пройтись по всем id из IN() и для каждого достать запись из структуры по ключу и добавить в массив результатов.
Ответ написан
Комментировать
@res2001
Developer, ex-admin
Создайте временную таблицу с полем ID, добавьте туда значения из $id и потом в запросе используйте join с временной таблицей.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Так он выводит по id а id это обычно первичный ключ, а значит он может быть только 1 в БД. Если у вас 2 одинаковых id в БД значит в ней что-то не так...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы