在MySql中,如果我在列表中传递重复的ID,如何获得行重复?

在MySql中,如果我在列表中传递重复的ID,如何获得行重复?,sql,mysql,Sql,Mysql,对于此MySQL SELECT语句: SELECT * FROM MY_TABLE WHERE ID IN(x,y,y,z): 我希望返回4行-即我希望在列表中传递重复ID的情况下进行行复制 这可能吗?使用IN构造,这是不可能的 SELECT * FROM MY_TABLE WHERE ID IN(x,y,z) union all SELECT * FROM MY_TABLE WHERE ID IN(y) 我能想到的唯一办法是建立一个工会: SELECT * FROM my_table WH

对于此MySQL SELECT语句:

SELECT * FROM MY_TABLE WHERE ID IN(x,y,y,z):
我希望返回4行-即我希望在列表中传递重复ID的情况下进行行复制


这可能吗?

使用IN构造,这是不可能的

SELECT * FROM MY_TABLE WHERE ID IN(x,y,z) union all SELECT * FROM MY_TABLE WHERE ID IN(y) 我能想到的唯一办法是建立一个工会:

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
但老实说,我会像你一样做,让你的应用程序代码根据需要复制行。

对我来说,在中指定一组要搜索的值,而复制是一个与设置值冲突的概念


您应该使用其他方法来达到您的范围。

将您的ID(包括DUP)放入临时表中,并将结果加入该表中。联接将负责筛选,但如果它在临时表中出现两次,将保留重复项

ok谢谢。我在in语法中使用,以避免对每个id进行单独的db调用。prob必须在应用程序中解决此问题。