You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何MySQL中使用order by random_bytes(8)无排序效果?

MySQL 8.0.23中ORDER BY random_bytes(8)无法随机排序的问题及解决方案

问题现象

在AWS Serverless v2环境的MySQL 8.0.23版本中,执行带有ORDER BY random_bytes(8)的查询时,结果始终保持插入顺序(例如固定返回1、2、3、4、5),完全达不到随机排序的预期效果。

测试验证

  • 创建存储过程Test,生成临时表Meow并插入测试数据,执行SELECT * FROM Meow ORDER BY random_bytes(8),结果始终有序
  • 尝试优化写法:将random_bytes(8)放入子查询、转换为十六进制字符串后排序,结果仍无变化
  • 对比测试:使用ORDER BY Id DESC可正常返回逆序结果,且临时表与普通表的表现完全一致

问题原因

这是MySQL优化器的已知bug,官方编号为111252,该问题仅存在于8.0.34之前的部分版本(如8.0.23)。

解决方案

将MySQL版本升级至8.0.34及以上,官方已在该版本中修复此bug。

内容的提问来源于stack exchange,提问作者Josh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 01:44:55