Mysql SELECT 函数内部 mysql LIMIT 函数

Mysql SELECT function inside mysql LIMIT function

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')

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

使用 LIMIT 的直接问题是没有 ORDER BY 子句。 您希望从结果集中得到第几条条记录?这还不清楚。我将给出一个通用模式,您可以使用它来限制子查询的记录数。

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

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列排序。然后我们对该 table 进行子查询,并仅保留与您要用于限制的子查询相匹配的记录。