Mysql查询,允许重复

Mysql查询,允许重复,mysql,sql,Mysql,Sql,我有一个名为Data(id,url)的表。我的项目中的一个api返回ID列表(该列表中可能有重复的ID)。为了回答这个问题,让我们假设这个列表为(1,1,2,3,4,4) 我正在尝试查找与这些ID关联的URL 我第一次天真的尝试是在子句中使用: SELECT url from Data where id in ( 1, 1, 2, 3, 4, 4); 这将返回四行。i、 e.id 1、2、3和4的URL 我想要的是六行,每一行对应指定的id(需要保留重复的行) 我理解IN条款在这种情况下没有帮

我有一个名为Data(id,url)的表。我的项目中的一个api返回ID列表(该列表中可能有重复的ID)。为了回答这个问题,让我们假设这个列表为(1,1,2,3,4,4)

我正在尝试查找与这些ID关联的URL

我第一次天真的尝试是在子句中使用:

SELECT url from Data where id in ( 1, 1, 2, 3, 4, 4);
这将返回四行。i、 e.id 1、2、3和4的URL

我想要的是六行,每一行对应指定的id(需要保留重复的行)

我理解IN条款在这种情况下没有帮助。谁能给我指一下正确的方向吗

我可以通过迭代列表来查询个人id,但这是我最后的选择

更新:添加有关表的更多详细信息

mysql> desc Data;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| url   | varchar(11) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

mysql> select * from Data;
+----+-------+
| id | url   |
+----+-------+
|  1 | a.com |
|  2 | b.com |
|  3 | c.com |
|  4 | d.com |
+----+-------+
4 rows in set (0.00 sec)

mysql> select url from Data where id in(1,1,2,3,4,4);
+-------+
| url   |
+-------+
| a.com |
| b.com |
| c.com |
| d.com |
+-------+
4 rows in set (0.00 sec)
我想要的是:

+-------+
| url   |
+-------+
| a.com |
| a.com |
| b.com |
| c.com |
| d.com |
| d.com |
+-------+
这个效果很好

   SELECT url 
   from table1
   where id in ( 1, 1, 2, 3, 4, 4);

在id上删除唯一的

   alter table Data drop index PRI; 
删除主键

 ALTER TABLE Data DROP INDEX `PRIMARY`;
不漂亮,但是

select url
  from Data
    inner join

( SELECT id FROM (
  SELECT 1 as id UNION ALL
  SELECT 1 as id UNION ALL
  SELECT 2 as id UNION ALL
  SELECT 3 as id UNION ALL
  SELECT 4 as id UNION ALL
  SELECT 4 as id
) as list_table ) as table2

  on (Data.id = table2.id);

我发现几乎没有办法
从列表中选择
值或
将一个表连接到列表中,但是你可以查看这个

如果你发布该表的结构,它可能会很有用。你能澄清你的问题吗?您在
列表中的
是多余的,是的,但是您的查询没有理由不返回带有这些ID的所有6个URL。此外,如果它不是唯一的,则不应使用
id
作为字段名;“这太令人困惑了。”EdCottrell请查看更新的问题。我希望这将澄清一些疑问。谢谢,谢谢你的回复。但在我的例子中,id是主键,它是唯一的。如果要存储重复项并选择重复项,那么为什么要在它上设置唯一项?要删除唯一的吗?请参阅更新的部分。就我而言,我想我不能更改任何表格。它已经有人居住了。此数据将导出到excel工作表,用于频率计数和其他目的。您只需删除索引主项,就会丢失任何内容。