可以自行完成LIMIT范围。
SELECT table_1.*, table_2.*
FROM table_1
LEFT JOIN table_2
ON table_1.id = table_2.ID
LIMIT 17402,17423
可以同时执行WHERE和ORDER BY。
SELECT table_1.*, table_2.*
FROM table_1
LEFT JOIN table_2
ON table_1.id = table_2.ID
WHERE AVAILABLE > 4
ORDER BY table_1.id ASC
不能同时执行WHERE,ORDER BY和LIMIT范围。
SELECT table_1.*, table_2.*
FROM table_1
LEFT JOIN table_2
ON table_1.id = table_2.ID
WHERE AVAILABLE > 4
ORDER BY table_1.id ASC
LIMIT 17402,17423
在删除ORDER BY的同时无法同时执行WHERE和LIMIT范围。
SELECT table_1.*, table_2.*
FROM table_1
LEFT JOIN table_2
ON table_1.id = table_2.ID
WHERE AVAILABLE > 4
LIMIT 17402,17423
希望同时执行WHERE和LIMIT范围,或者尽可能全部执行3个。
答案 0 :(得分:2)
事实上,您可以使用限制位置和顺序。也许你遇到了问题,因为一旦你包含where子句,你就没有17402行?
答案 1 :(得分:1)
@BradleyKaiser打败了我,您使用WHERE
子句限制了结果集,因此不再拥有之前的LIMIT
行。
如果您知道某个特定行的事实,然后按照WHERE
子句进行过滤,则可以随时执行子查询:
SELECT Id
,Available
FROM (
SELECT table_1.id AS Id
,table_2.AVAILABLE AS Available
FROM table_1
LEFT OUTER JOIN table_2 ON table_1.id = table_2.ID
LIMIT 17402,17423
) AS Subset
WHERE Available > 4
ORDER BY Id ASC
您需要花时间列出您在此处所做的列(出于维护原因,您应该这样做),但是使用此子查询设置它将首先根据您的LIMIT
检索记录,然后过滤并订购生成的记录集。