【发布时间】:2019-08-25 01:59:39
【问题描述】:
当我尝试使用RAND() 函数从表中获取随机行时,我得到了意想不到的不稳定结果。以下查询(其中 id 列是主键)返回 1、2 甚至更多行:
我也尝试了下一个产生相同结果的变体:
SELECT id, word FROM words WHERE id = FLOOR(RAND() * 1000)
我为我的任务找到了另一个解决方案:
SELECT id, word FROM words ORDER BY RAND() LIMIT 1
但我想知道为什么 MySQL 的行为在使用如此基本的功能时会如此出乎意料。吓死我了。
我在不同的 IDE 中进行了实验,结果相同。
【问题讨论】:
-
只需将
LIMIT添加到您的原始 SQL 中 -
您可能还会发现this soution 很有用。
标签: mysql sql random mysql-5.6