Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql限制整个列表可能更改的时间_Mysql_Sql_Mysqli - Fatal编程技术网

Mysql限制整个列表可能更改的时间

Mysql限制整个列表可能更改的时间,mysql,sql,mysqli,Mysql,Sql,Mysqli,我有一个查询,返回一个大列表中的10项。例如: SELECT * FROM users WHERE user_is_block = 0 AND user_is_paid = 1 ORDER BY user_post_hour ASC, id ASC" 当我每次放入limit?,?以获取此列表的一部分时,就会出现问题。假设我们得到了前10个。id为11的行是下一个请求中的第一行。但是当我们使用“按用户发布时间排序”时,id 11可能会上升并变为10。所以当第二个请求被发送时,我们永远看不到id

我有一个查询,返回一个大列表中的10项。例如:

SELECT * FROM users
WHERE user_is_block = 0
AND user_is_paid = 1
ORDER BY user_post_hour ASC, id ASC"
当我每次放入
limit?,?
以获取此列表的一部分时,就会出现问题。假设我们得到了前10个。id为11的行是下一个请求中的第一行。但是当我们使用“按用户发布时间排序”时,id 11可能会上升并变为10。所以当第二个请求被发送时,我们永远看不到id 11


有什么想法吗?

这可能是数据类型排序的问题,再次将列值显式转换为整数

SELECT * FROM users
WHERE user_is_block = 0
AND user_is_paid = 1
ORDER BY cast(user_post_hour as unsigned) ASC, id ASC
使用这个技巧

SELECT * FROM users
WHERE user_is_block = 0
AND user_is_paid = 1
ORDER BY user_post_hour+0 ASC, id ASC

考虑将整个数据集返回到应用程序层,如JSON或(如果你有点过时)XML。然后对结果集进行分页。“user\u post\u hour”的数据类型是什么?@草莓当然是json。但问题是列表(表)很大,对于每一行,我应该运行另一个查询,这可能需要很多时间。@Santosh这是整数。但如果按照我的建议执行,那么这只是一个查询。我不明白它对
限制
的作用!看,问题是列表可能会在每个请求中更改。我行中的数字11在第二次查询中可能变成10,所以它永远不会返回到客户端。