2012-11-23 61 views
1

我有一個字段命名爲「的ColorCode」在具有類似這樣的數字一個MySQL表:如何按MySQL中字段值的最後一項進行分組?

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

會是怎樣的SQL語句來顯示有多少每種顏色的occurances,像這樣PHP影響的僞代碼:

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

我希望你不會有很多的記錄。 –

+0

這只是一次性查詢,所以此時性能並不重要。 –

回答

4

的fugly,但這樣的事情

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

如果你經常運行此查詢,絕對求索r將這個'最後'值分解到它自己的字段中,這樣你至少可以對它進行索引。在大桌子上表現會很糟糕。

1

如何:

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

這並不適用於您的最後一個例子的工作,雖然。

顯然它確實也適用於你的最後一個例子! :d

這裏是一個演示:http://sqlfiddle.com/#!2/d41d8/4088

+0

'SUBSTRING_INDEX('green','',-1)=='green'' –

+0

@Jack是的,我剛剛發現了這個,謝謝! –

相關問題