1

我在 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));
4

2 回答 2

4

丑陋,但像这样

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

如果您经常运行此查询,请务必考虑将“最后一个”值拆分为自己的字段,以便至少可以对其进行索引。大型桌子上的性能将非常糟糕。

于 2012-11-23T15:28:17.673 回答
1

这个怎么样:

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

不过,这不适用于您的最后一个示例。

显然它适用于您的最后一个示例!:D

这是一个演示:http ://sqlfiddle.com/#!2/d41d8/4088

于 2012-11-23T15:30:14.530 回答