2014-01-09 49 views
8

是否有可能使用Mysql獲得逗號分隔的前n行(比如10行的列)行?前n行的Mysql GROUP_CONCAT

我有一個查詢,以獲得比CURDATE數據大於()。它將返回超過100行的結果。我想要的是,GROUP_CONCAT結果的前10行。

這是我的查詢:

SELECT GROUP_CONCAT(user_id) AS userids 
FROM user_tasks 
WHERE due_date > CURDATE() LIMIT 10; 

我得到整個行。我需要前10行只

感謝

+1

什麼問題是你與您當前的代碼?你可以發佈嗎? – Clive

+1

只需添加一個'SUBSTRING_INDEX' http://dev.mysql.com/doc/refman/5.6/en/string-functions.html#function_substring-index和'order by' http://dev.mysql.com/ doc/refman/5.6/en/group-by-functions.html#function_group-concat到你的'group_concat' –

+0

嗨Clive,用我的代碼更新 –

回答

13

使用子查詢:

SELECT 
    GROUP_CONCAT(user_id) AS userids 
FROM 
    (SELECT 
    user_id 
    FROM 
    user_tasks 
    WHERE due_date > CURDATE() 
    LIMIT 10) AS users 
+0

感謝Alma,它的作品。我試圖用子查詢,但隨後在哪裏條件。 –

6

您需要使用子查詢強加的限制,像這樣:

SELECT GROUP_CONCAT(sub_query.user_id) AS userids 
FROM 
(
    SELECT user_id 
    FROM user_tasks 
    WHERE due_date > CURDATE() 
    LIMIT 10 
) sub_query