当整个列表可能改变时,Mysql限制

时间:2017-06-11 09:04:06

标签: 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的行是下一个请求中的第一行。但是当我们使用ORDER BY user_post_hour时,id 11可能会上升并变为10.因此,当发送第二个请求时,我们永远不会看到id 11。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这可能是数据类型soring的问题,再次将列值明确地转换为整数

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