SQL_NO_CACHE选择与先前选择具有相同值的行

时间:2014-02-22 18:44:31

标签: mysql sql

我有一个SQL语句,用于从具有大约5,000行的数据库中选择一个随机行。

我注意到一个应该随机选择一行的查询的奇怪行为。这是我的疑问:

SELECT SQL_NO_CACHE * FROM tickets AS r1 JOIN (SELECT (RAND() * (SELECT MAX(id) FROM tickets)) AS id) AS r2 WHERE r1.id >= r2.id ORDER BY r1.id ASC LIMIT 1

我的表结构是:

id int(11) primary auto_increment name int(11)

查询选择一行后,该行将被删除。刷新页面时,选择具有相同名称值的行几乎9/10次。我已经把SQL_NO_CACHE语句试图避免,但它没有奏效。即使某个名称值只有100 / 5,000,它仍会被连续挑选9次,这不是我期望的查询。

有没有人有关于为什么会发生这种情况的任何输入,或者任何可能的修复?

感谢。

0 个答案:

没有答案