MySQL“小于”运算符不会带来正确的结果

时间:2014-08-09 16:03:02

标签: php mysql

我在PHP和MySQL中使用分页来查看下一个/上一个记录。查询如下:

$domain_id = 1;
$user_id = 8;
$limit = 5;
$sql = 
'SELECT users.user, users.id FROM users 
  JOIN users_matched_domain ON
        users.id = users_matched_domain.user_id  AND 
        users_matched_domain.domain_id = '.$domain_id.' AND 
        users.id < "'.$user_id.'" 
  ORDER BY users.id ASC LIMIT '.$limit;

表用户如下:

id       user
==       ===
1         a
2         b
3         c
4         d   
5         e
6         f
7         g
8         h
9         i
10        j
11        k
.         .
.         .

上述查询效果不佳,它从user_id表中的第一个ID开始带来用户ID。即行ID(1到5),它应该给(3,4,5,6,7),因为它们小于用户ID 8.当我更新上面的查询时,如下所示:

users.id > "'.$user_id.'" 

然后分页工作正常(下一个,下一个,下一个),我得到1-5,然后是6-10,11-15等。

我非常感谢你的提示。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

在您所看到之前,您需要对五个进行desc排序:

 . . .
 ORDER BY users.id DESC . . .

换句话说,您希望desc的{​​{1}}和<的{​​{1}}排序。