【问题标题】:LIMIT showing duplicate resultsLIMIT 显示重复的结果
【发布时间】:2014-05-29 03:03:53
【问题描述】:

我不知道为什么会这样。我有一个包含以下列的表格:

+-------------+------------+------+-----+---------+----------------+
| Field       | Type       | Null | Key | Default | Extra          |
+-------------+------------+------+-----+---------+----------------+
| adid        | int(11)    | NO   | PRI | NULL    | auto_increment |
| price       | float      | YES  |     | NULL    |                |
| categoryid  | int(11)    | YES  |     | NULL    |                |
| visible     | tinyint(4) | YES  | MUL | NULL    |                |
+-------------+------------+------+-----+---------+----------------+

这个表中有 7 条记录是可见的,并且类别设置为 3。我做了一个这样的简单查询:

SELECT adid FROM ads as a 
WHERE categoryid = 3 
and visible = 1 
order by price desc 
limit 0, 5

我得到以下 adid 的返回:1,4,3,15,7

在下一页的查询是:

SELECT adid FROM ads as a 
WHERE categoryid = 3 
and visible = 1 
order by price desc 
limit 5, 5

我得到:11,15

也许我起得太晚了,但为什么我两次得到 15?

【问题讨论】:

  • 它们的price 值是否相同?

标签: mysql


【解决方案1】:

为了使结果稳定和一致,您需要有任何唯一的列来参与排序。

在这种情况下可能是

ORDER BY price DESC, adid

【讨论】:

  • 谢谢。我完全忘记了那个警告。时间限制结束后将标记为接受。
猜你喜欢
  • 2021-02-23
  • 2015-02-23
  • 1970-01-01
  • 1970-01-01
  • 2019-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多