Как вывести повторяющиеся строки в запросе к MySQL «WHERE IN (1,2,3)»?
Здравствуйте!
Возникла такая ситуация:
есть запрос к базе данных: "SELECT * FROM $table WHERE id IN $id"
где $id = (1,2,2,3)
База возвращает только 3 строки (так как "2" повторяется), а мне нужно все 4. Т.е. повторяющиеся строки тоже необходимо взять повторно и в дальнейшем вывести. Как это возможно реализовать?
Средствами SQL ИМХО никак. Пост-обработку результата запроса сделать. По возвращенным записям построить структуру "ключ-значение" (с id в качестве ключа), затем пройтись по всем id из IN() и для каждого достать запись из структуры по ключу и добавить в массив результатов.
Так он выводит по id а id это обычно первичный ключ, а значит он может быть только 1 в БД. Если у вас 2 одинаковых id в БД значит в ней что-то не так...