Задать вопрос
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. Т.е. повторяющиеся строки тоже необходимо взять повторно и в дальнейшем вывести. Как это возможно реализовать?

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽