我想从我的表中选择除前20行之外的所有行。怎么可能?行总数不是静态的。
SELECT statistics_id,title, user_name FROM (
SELECT statistics_id,title, user_name FROM statistics ORDER BY statistics_id DESC
LIMIT(select count(*)from statistics )-20
) sub
ORDER BY access_statistics_id ASC
我知道' LIMIT(从统计数据中选择计数(*))-20'不是一个正确的方法。请帮忙。
答案 0 :(得分:0)
试试这个
DECLARE v_max bigint unsigned default ~0;
SELECT statistics_id,title, user_name
FROM statistics
LIMIT 20, v_max;
答案 1 :(得分:0)
写完选择查询后,你只需要包含,
LIMIT 21,100;
21-Offset,即您要从哪一行开始选择和
100-是限制[你可以根据需要设置]
答案 2 :(得分:0)
你真的需要:
SELECT
statistics_id, title, user_name
FROM statistics
ORDER BY
statistics_id ASC
LIMIT 20, 18446744073709551615;
从特定偏移量检索所有行直到结果的末尾 设置,您可以使用一些大数字作为第二个参数。这个 语句检索从第96行到最后一行的所有行:
SELECT * FROM tbl LIMIT 95,18446744073709551615;
答案 3 :(得分:0)
如果表增长很快,那么选择所有行(前20个除外)不是一个好主意。在这种情况下,您应该批处理查询,并一次处理一部分条目,例如:
SELECT * FROM tbl LIMIT 20,120;
答案 4 :(得分:-1)
尝试使用LIMIT语法的偏移选项。您可以在http://dev.mysql.com/doc/refman/5.0/en/select.html了解有关LIMIT语法的更多信息。
SELECT `statistics_id`
, `title`
, `user_name`
FROM `statistics`
ORDER BY `statistics_id` ASC
LIMIT 20, 18446744073709551615
答案 5 :(得分:-1)
文档说(https://dev.mysql.com/doc/refman/5.5/en/select.html)以下内容:
要从特定偏移量检索所有行直到结果集的末尾,可以使用一些大数字作为第二个参数。此语句检索从第96行到最后一行的所有行:
SELECT * FROM tbl LIMIT 95,18446744073709551615;
所以你可以使用像
这样的东西LIMIT 20, veryLargeNumber