背景
市场同事给我一个excel文件,有客户手机,让我给这些客户发一些优惠券,有些手机是重复的,意思是应该发送多张优惠券。
有一个表有这些数据,
select * from t ;
+----+------+
| id | name |
+----+------+
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | d |
| 5 | e |
| 6 | f |
+----+------+
select * from t where id in (1,2,1);
+----+------+
| id | name |
+----+------+
| 1 | a |
| 2 | b |
+----+------+您可以看到mysql自动删除in参数列表中的重复id,但我希望效果如下
+----+------+
| id | name |
+----+------+
| 1 | a |
| 2 | b |
| 1 | a |
+----+------+这是in参数,就像list,而不是set。那么如何在mysql中实现这一点呢?
发布于 2016-03-25 14:04:54
SELECT * FROM t where id in (1,2);
UNION ALL
SELECT * FROM t where id in (1);这将帮助您在mySQL中添加重复记录。
发布于 2016-03-29 17:15:23
一些解决办法可能就是这样做:
CREATE TEMPORARY TABLE tmp_id (ID INT);
INSERT INTO tmp_id VALUES (1),(2),(1); -- etc
SELECT t.*
FROM t
JOIN tmp_id
ON tmp_id.id = t.id;https://stackoverflow.com/questions/36221246
复制相似问题