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')
我试图将计数作为输出但这个查询不起作用。我这样使用是因为限制设置是动态的。
答案 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
这里的基本思想是我们在子查询中模拟行号,也就是说,我们为每个记录分配行号,根据col
列排序。然后我们对该表进行子查询,并仅保留与要用于限制的子查询匹配的记录。