gpt4 book ai didi

mysql - 这个查询会按预期工作吗?

转载 作者:搜寻专家 更新时间:2023-10-30 20:30:24 25 4
gpt4 key购买 nike

我有一个只有一列的 mysql 表,该列有一些 3 个字母的单词和一些 4 个字母的单词,还有一些 5 和 6 个字母的单词。

我想要一个查询,首先从所有 3 个字母的单词中随机选择,当它们都消失时,然后移动到 4 个字母的单词,依此类推。

这是我的查询:

SELECT `word` FROM `words` ORDER BY LENGTH(`word`) ASC, RAND() LIMIT 1

到目前为止,在我尝试过的几次中,它按预期工作,但我想确保它会始终像这样工作。

最佳答案

我觉得你的查询很好,但我希望表很小,因为 MySQL 每次都会扫描所有行,然后使用文件排序,所有这些都返回一行。

添加 wordlength 列并为其编制索引不会改进查询,因为 ORDER BY RAND() 函数会使索引的使用无效。

考虑将单词拆分到单独的表中,具体取决于它们的长度,至少您只会扫描所有行以查找相同长度的单词。先从three_letter_words表中选择,没有结果再从four_letter_words表中选择,以此类推。

关于mysql - 这个查询会按预期工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10405800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com