2017-07-18 50 views
0

我有以下的数据,看起来与此类似:选择所有第一个记录匹配的第一唯一字

id  property position 
======== ======== ======== 
1   Cool  Leader 
2   Cool  Sponsor 1 
3   Cool  Sponsor 2 
4   Cool  Sponsor 3 
5   Hot  Icon 
6   Hot  Sponsor 2 
7   Hot  Sponsor 3 

我试图写一个返回独特的位置值的行,但之后的忽略号查询位置。

id  property position 
======== ======== ======== 
1   Cool  Leader 
2   Cool  Sponsor 1 
5   Hot  Icon 
6   Hot  Sponsor 2 

我怎样才能做到这一点:所以,如果赞助商1存在,那么不要在有赞助商2和3赞助

我预期的结果是返回行?

+0

删除第一次出现 - 看你以后要去什么。 – user3741598

+0

我想我会介绍一个将位置分成position_name和position_index的数据视图。这将允许您选择,按照position_index排序,并在position_name上执行唯一的操作。或者按照这些路线。 –

回答

1

使用MySQL

如果你想要得到的字符串

SELECT property, position, SUBSTRING_INDEX(position, " ", 1) AS p2 
FROM table_name 
GROUP BY p2, property; 
+0

这将适用于单个属性值,但不适用于每个属性。 – Tommizzy

+0

我们可以通过这两个组,我再次更新答案 –

+0

啊我看到。是的,我认为这会起作用。 – Tommizzy