В MySql, как я получаю дублирование строки для случая, когда я передаю повторяющиеся идентификаторы в списке? - PullRequest
0 голосов
/ 14 сентября 2009

Для этого оператора MySQL SELECT:

SELECT * FROM MY_TABLE WHERE ID IN(x,y,y,z):

Я хочу 4 строки назад - т.е. я ХОЧУ дублирование строк для случая, когда я передаю повторяющиеся идентификаторы в списке.

Возможно ли это?

Ответы [ 4 ]

4 голосов
/ 14 сентября 2009

Поместите свои идентификаторы, включая dups, во временную таблицу и объедините ваши результаты в этой таблице. Объединение позаботится о фильтрации, но сохранит дубликаты, если оно дважды находится во временной таблице

4 голосов
/ 14 сентября 2009

с использованием конструкции IN (), это невозможно.

единственный способ, которым я могу думать, это сделать с СОЮЗОМ:

SELECT * FROM my_table WHERE id = x
UNION ALL
SELECT * FROM my_table WHERE id = y
UNION ALL
SELECT * FROM my_table WHERE id = y
UNION ALL
SELECT * FROM my_table WHERE id = z

но, если честно, я бы просто сделал IN (), как у вас, и заставил бы код вашего приложения дублировать строки по мере необходимости.

0 голосов
/ 14 сентября 2009

Для меня IN укажите набор значений для поиска (и дублирование является концепцией, которая конфликтует с установленной).

Вы должны использовать другое средство для достижения своей цели.

0 голосов
/ 14 сентября 2009
SELECT * FROM MY_TABLE WHERE ID IN(x,y,z)
union all 
SELECT * FROM MY_TABLE WHERE ID IN(y)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...