SELECT
word, left(word, 2)
FROM en_english479k
WHERE word IN
(
SELECT word FROM en_english479k WHERE CHAR_LENGTH(word) >= 12
)
group by left(word, 2)
ORDER BY RAND()
LIMIT 50
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;
这使用了mysql(mis)特性,允许 group by 以及 select 不相容。因为你想要一个随机的单词,而不是按字母顺序说第一个单词,所以我建议在这种情况下使用这个特性。
2条答案
按热度按时间x6492ojm1#
我花了一段时间,但我想我已经明白了。
mjqavswn2#
我一般不推荐这种方法,但这可能是做你想做的事情的最简单的方法:
这使用了mysql(mis)特性,允许
group by
以及select
不相容。因为你想要一个随机的单词,而不是按字母顺序说第一个单词,所以我建议在这种情况下使用这个特性。