2017-04-06 60 views
1

我找不到這是可能的,是否有任何選項可以限制MySQL函數中的GROUP_CONCATPHP MySQL GROUP_CONCAT限制

例如爲:

GROUP_CONCAT(ColName ORDER BY ColName DESC LIMIT 5) 

我不想使用子查詢,因爲這會嚴重拖慢性能。我可以稍後在PHP中對數組進行分片,但我想知道或者MySQL有一個選項可以在MySQL中實現。

+1

*「我不想使用子查詢」* - 您必須稍微使用bonker來將LIMIT應用於子查詢:http://stackoverflow.com/questions/7124418/mysql- subquery-limit – CD001

+0

@ CD001,我知道這個謝謝 –

回答

9

沒有,但你可以這樣做:

SUBSTRING_INDEX(GROUP_CONCAT(ColName ORDER BY ColName DESC), ',', 5) 

您可能要注意組CONCAT最大長度(見group_concat_max_len),如果中間字符串可能超過1024個字符大。您可以更改默認值。

+1

你錯過了''''desc – Rams

+1

@Rams之後。 。 。謝謝。 –

+0

@GordonLinoff,很好的解決方案,謝謝。 1024會足夠大,因爲我只會返回5個整數。 –