前n行的Mysql GROUP_CONCAT

时间:2014-01-09 13:24:14

标签: mysql

是否可以使用Mysql获取前n行(比如列的10行)的逗号分隔值?

我有一个查询来获取大于CURDATE()的数据。它将返回超过100行的结果。我想要的是,GROUP_CONCAT前10行结果。

这是我的疑问:

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

我正在获得整行。我只需要前10行

由于

2 个答案:

答案 0 :(得分:14)

使用子查询:

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

答案 1 :(得分:7)

您需要使用子查询来强加限制,如下所示:

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