我有一个查询,例如下面的查询。
SELECT DISTINCT(`name`) FROM `mydb`
WHERE `name` IN ('a', 'b', 'b', 'c', 'd', 'd', 'e');
我提供上面的字母列表并查询我的数据库。
我想要的是它返回包含重复项的行(所以行的名称为'a',两个'b'行,'c',两个'd'行和'e')。< / p>
提前致谢!
编辑:
CURRENT输出:
+------+
| name |
+------+
| a |
| b |
| c |
| d |
| e |
+------+
渴望输出:
+------+
| name |
+------+
| a |
| b |
| b |
| c |
| d |
| d |
| e |
+------+
我无法删除明显的。我应该提供更多背景资料。表中的每个条目都有可能在其中包含具有重复名称的另一行。
我需要区别的原因是因为我不希望30行代表'a'。我只想为输入到查询中的每个条目添加一行。
答案 0 :(得分:1)
单词DISTINCT
是否可以放弃。只需删除它!
答案 1 :(得分:1)
你可以使用union all
这样做:
select distinct name from t1 where name in ('a','c','e')
Union all
select distinct name from t1 where name in ('a')
order by name;
<强> EDITED 强>
将所有不同的行放在一个条件中并添加您需要的任何其他重复行。
答案 2 :(得分:0)
SELECT `name` FROM `mydb`
WHERE `name` IN ('a', 'b', 'b', 'c', 'd', 'd', 'e');
答案 3 :(得分:0)
DISTINCT关键字告诉mysql不显示任何重复的行。只使用你的查询没有明显。