我可以计算每个MySQL Select / Union有多少结果

时间:2014-03-25 14:21:42

标签: php mysql count limit union

我的查询遵循以下格式:

(SELECT t.column1, t.column2
FROM table t 
WHERE t.status = 1 
LIMIT 10)
UNION
(SELECT t.column1, t.column2 
FROM table t
WHERE t.status = 2 
LIMIT 10)

最终结果是我需要有20行。如果第一个SELECT语句只能找到包含t.status = 1的9行,那么我希望第二个SELECT语句使用LIMIT 11代替LIMIT 10

我正在使用PHP来编写和运行查询,但我正在寻找能在MySQL中执行的东西,所以我可以将它作为一个查询运行。

任何想法都将不胜感激。

1 个答案:

答案 0 :(得分:0)

在总计数中添加一个“外部”限制,并使用相同的限制作为第二个查询的限制。

(
SELECT t.column1, t.column2
FROM table t 
WHERE t.status = 1 
LIMIT 10 # 1/2 of total rows
)
UNION
(
SELECT t.column1, t.column2 
FROM table t
WHERE t.status = 2 
LIMIT 20 # total rows
)
LIMIT 20 # total rows