我有一個名爲Data(id,url)的表。我的項目中的一個api返回了我的id列表(這個列表中可能有重複的id)。爲了這個問題,我們假設這個列表爲(1,1,2,3,4,4)Mysql查詢,允許重複
我試圖找到與這些ID相關的URL。
我第一次和天真的嘗試是IN子句中使用:
SELECT url from Data where id in (1, 1, 2, 3, 4, 4);
這將返回我四行。即網址,ID 1,2,3和4
我要的是六排,每一個指定id(重複的行需要保留)
我瞭解,在條款是沒有幫助在這情況。任何人都可以請我指出正確的方向?
我可以通過迭代列表來激發個人id的查詢,但它是我的最後一招。
UPDATE:添加關於表的詳細信息
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 |
+-------+
如果您發佈該表的結構,它可能很有用。 – Mubo
你能澄清你的問題嗎?你的'IN'列表是多餘的,是的,但沒有理由你的查詢不會返回所有這6個URL的URL。另外,如果它不是唯一的,你不應該使用'id'作爲你的字段名稱;這是令人困惑的。 –
@EdCottrell請參閱最新的問題。我希望這會澄清一些疑問。謝謝。 – Icarus3