如何按MySQL中的字段值中的最后一项进行分组?

时间:2012-11-23 15:24:19

标签: mysql

我在MySQL表中有一个名为“ColorCode”的字段,其中包含以下值:

28373 GYY green
23423 HH red
23423 HH green  
2343 QWE red    
SKDJF blue  
green

什么是SQL语句来显示每种颜色的出现次数,类似于受PHP影响的伪代码:

SELECT COUNT(*) FROM products GROUP BY END(EXPLODE(ColorCode));

2 个答案:

答案 0 :(得分:4)

fugly,但是像这样

group by RIGHT(ColorCode, LOCATE(' ', REVERSE(ColorCode))

如果您经常运行此查询,请务必考虑将“最后”值拆分为自己的字段,以便至少可以对其进行索引。大表上的表现会很糟糕。

答案 1 :(得分:1)

这个怎么样:

GROUP BY SUBSTRING_INDEX(ColorCode,' ',-1);

虽然这不适用于你的上一个例子。

显然确实也适用于你的最后一个例子! :d

以下是演示:http://sqlfiddle.com/#!2/d41d8/4088