mysql - 如何选择具有唯一起始字符的随机单词
问题描述
我需要一个 MySQL 查询来从英语词典数据库中选择随机单词。但是,就我而言,查询产生的单词在前两个起始字符方面必须是唯一的。
例如,此查询执行选择随机单词的工作,但如您所见,它会产生单词以相同字符开头的结果。
SELECT DISTINCT(word) FROM en_english479k WHERE CHAR_LENGTH(word)>=12 ORDER BY RAND() LIMIT 10
我需要生成在起始字符方面完全独特的单词(在我的例子中是前两个)。
解决方案
我通常不推荐这种方法,但它可能是做你想做的最简单的方法:
select e.word
from (select e.*
from en_english479k e
where char_length(word) >= 12
order by rand()
) e
group by left(word, 2)
order by e.word
limit 10;
group by
这使用了允许和select
不兼容的 MySQL (mis) 功能。因为你想要一个随机的词——而不是按字母顺序说第一个词——我更愿意在这种情况下推荐使用这个功能。
推荐阅读
- python - 尝试在 google colab 中使用 Stockfish 国际象棋分析时权限被拒绝
- php - 在 Ubuntu 服务器上保护 RSA 密钥文件 - 什么权限?
- javascript - 保存js文件或刷新浏览器时常量的值发生变化
- java - GitHub Actions 上 Windows 环境中的测试容器:“找不到有效的 Docker 环境。请查看日志并检查配置”
- c - 验证循环的 C 菜单问题(对许多打印件)
- javascript - 使用 POST 发送 html 选择选项禁用属性,并在输入表单中使用 onclick 启用选择选项属性
- arrays - 带c的字符串函数
- javascript - 带有“click”的 addEventListener() 无法运行,但使用 Chaffle.js 随机播放文本时没有错误显示
- python - 无法识别的excel文件
- javascript - 反应状态按钮或创建后退按钮?