SQL 用于显示唯一值的语句

SQL statement for displaying unique values

下面是我的table中的数据:

TABLE:
abc-ac                     
abc-dc                     
aax-i                      
bcs-o-dc                   
ddd-o-poe-dc               

我需要编写一个查询,结果将只显示唯一的条目:

abc-ac
aax-i                      
bcs-o-dc                   
ddd-o-poe-dc

所以基本上,由于前两个条目以 "abc" 开头,因此应将其视为一个条目并显示。

谢谢。

如果您对它显示的两个 abc-* 记录中的哪一个不挑剔,您可以使用此:

SELECT f1 FROM mytable GROUP BY substring_index(f1, '-', 1)

SQLFiddle Here

substring_index() 函数会将您字段中的值拆分为 - 和 return 第一位。所以基本上你的记录只按第一部分分组。这是我们可以利用 MySQL 奇怪的 GROUP BY 行为的少数情况之一,它允许您从分组依据中省略非聚合字段。