选择替换的选定结果的不同值

时间:2014-04-18 15:01:45

标签: mysql sql select replace distinct

美好的一天。

我遇到mySql查询的一个小问题。让我们假设我们有一个带有coulmn的表,其中值是成对的,但统一在同一个字段中,所以像这样:

id  |  serviceName
----+-------------
1   |  foo - bar
2   |  foo - doo
3   |  foo - tep
4   |  bee - bar
5   |  bee - blo

我想选择不同的serviceName的第一部分,在本例中为foo,bee。

所需的输出应为:

foo
bee

在结果集中。

我现在所想的是制作SELECT DISTINCT a FROM REPLACE ( (SELECT serviceName as a FROM tableName), ' - ***', '')

但我不确定它是否可能,以及如何制作它。我只想选择该领域的第一部分,我只想对它采取不同的意见......这有可能吗?我需要一个正确的方向指向,我可以自己进行研究。

提前感谢。

2 个答案:

答案 0 :(得分:1)

假设您总是希望在短划线-上拆分,这应该适合您。

SELECT DISTINCT LEFT(serviceName, LOCATE('-', serviceName) - 2) FROM tableName;

SQLFiddle

答案 1 :(得分:1)

这是你在看什么?

select substring_index(serviceName,'-',1) as `first_part` 
from test
group by `first_part`

<强> DEMO