显示非重复的重复项

时间:2011-08-23 10:50:35

标签: sql

我有这张桌子:

Name | add | city | id
----------------------
dan  | df  | mum  |  1
abu  | kj  | del  |  2
abu  | kj  | del  |  3
abu  | bv  | kol  |  4
jas  | ol  | ch   |  5

以下查询将显示名称为abu的行:

Select * from table where name like'%abu%'

现在我想消除重复。为此,我可以使用GROUP BY子句。但它不会显示不重复的行。

它应该显示为

abu kj del
abu bv kol

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

如果你想消除重复,只需像这样添加DISTINCT:

Select DISTINCT * from table where name like'%abu%'

顺便说一句:用“LIKE'%something%'”进行查询是非常低效的。如果你可以在你的场景中,最好做出“LIKE'abu%'

BTW:在你的例子中,如果你想拍摄有计数(*)>的记录。 1你可以使用HAVING子句:

 SELECT * from table GROUP BY column HAVING count(*) > 1

答案 1 :(得分:0)

这样的事情可能会让你得到你想要的东西:

SELECT DISTINCT
  Name,
  add,
  city
FROM atable
WHERE Name LIKE '%abu%'