我试图解决这个棘手的问题,但没有成功。
我有一个mysql表,如下所示:

Category      Model      Description
cat1           AAA       Triple A
cat1/cat2      AAA       Triple A
cat1/cat2      BBB       Triple B
cat1           BBB       Triple B
cat3           CCC       Triple C
cat3/cat4/cat5 CCC       Triple C
cat3/cat4      CCC       Triple C

等。
我想选择具有唯一模型和“最长”类别的行。基本上我想得到:
Category      Model      Description
cat1/cat2      AAA       Triple A
cat1/cat2      BBB       Triple B
cat3/cat4/cat5 CCC       Triple C

有什么线索吗?

最佳答案

select m.*
from MyTable m
inner join (
    select Model, max(char_length(Category)) as MaxLen
    from MyTable
    group by Model
) mm on m.Model = mm.Model and char_length(m.Category) = mm.MaxLen

事实上,你可能想要最深的类别而不是最长的类别。如果是这样的话,还有比上面更好的选择。

关于mysql - 根据另一个字段选择具有重复字段的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12711537/

10-10 19:33