需求,现在有一个id list{1,1,2,3},想要查出该表对应的数据,不去重
现在有如下sql, 我的想法是用in()但是给去重了,我想让他不去重展示出来或者说有别的更好的写法吗,这个sql应该怎么写?
以下是表结构
id name
1 张三
2 李四
3 王五
这是我写的sql
select * from 表a where id in(1,1,2,3);
查询出的结果是
id name
1 张三
2 李四
3 王五
但是我想得到如下结果
id name
1 张三
1 张三
2 李四
3 王五
union all
SELECT * FROM `a` where id in (1)
UNION ALL
SELECT * FROM `a` where id in (1,2,3)
1、你发的表数据里面没有重复值,如果你要人为发散数据,上面两位大佬的union all写法即可满足;
2、如果你的源表数据本身存在重复值,即(1,张三)有两行,in (1,2,3)结果是不会主动去重的;
3、union写法去重,union all不去重,聚合group by 和distinct可以去重
希望我的答案对你有帮助呀