我的查询遵循以下格式:
(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中执行的东西,所以我可以将它作为一个查询运行。
任何想法都将不胜感激。
答案 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