Mysql SELECT函数里面有mysql LIMIT函数

时间:2018-02-12 06:10:38

标签: mysql limit

SELECT COUNT('2018-02-12') 
as ids FROM tg_partner_data
WHERE assign_to = '2'
AND
followup_date = '2018-02-12' AND active='Y'
LIMIT (SELECT count FROM tg_master_count WHERE count_for = 'followup')

我试图将计数作为输出但这个查询不起作用。我这样使用是因为限制设置是动态的。

1 个答案:

答案 0 :(得分:2)

使用LIMIT时遇到的一个直接问题是您没有ORDER BY条款。 您希望从结果集中找到哪些第一条记录?目前尚不清楚。我将给出一个通用模式,您可以使用该模式使子查询限制记录数。

考虑一个只有一列的简单表:

col
1
2
3
4
5

现在假设您要根据col的排序使用一些子查询来限制结果集中的记录数。我们可以写下以下内容:

SET @rn=0;

SELECT col
FROM
(
    SELECT
        col,
        @rn:=@rn+1 rn
    FROM yourTable
    ORDER BY
        col
) t
WHERE t.rn <= (SELECT 3 FROM dual);    -- replace with your own subquery

Demo

这里的基本思想是我们在子查询中模拟行号,也就是说,我们为每个记录分配行号,根据col列排序。然后我们对该表进行子查询,并仅保留与要用于限制的子查询匹配的记录。