MySQL SELECT DISTINCT包含重复项

时间:2013-07-14 05:45:08

标签: mysql

我有一个查询,例如下面的查询。

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'。我只想为输入到查询中的每个条目添加一行。

4 个答案:

答案 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;

SQL Fiddle

<强> EDITED

将所有不同的行放在一个条件中并添加您需要的任何其他重复行。

答案 2 :(得分:0)

SELECT `name` FROM `mydb`
WHERE `name` IN ('a', 'b', 'b', 'c', 'd', 'd', 'e');

答案 3 :(得分:0)

DISTINCT关键字告诉mysql不显示任何重复的行。只使用你的查询没有明显。