如何选择具有唯一起始字符的随机单词

时间:2018-11-01 22:40:36

标签: mysql sql

我需要一个MySQL查询来从英语词典数据库中选择随机单词。但是,就我而言,查询产生的单词在前两个开始字符方面必须是唯一的。

例如,此查询执行选择随机单词的工作,但是如您所见,它会生成结果,其中单词以相同字符开头。

SELECT DISTINCT(word) FROM en_english479k WHERE CHAR_LENGTH(word)>=12 ORDER BY RAND() LIMIT 10

效果在此屏幕快照中可见: enter image description here

我需要生成就其起始字符(在本例中为前两个)而言完全唯一的单词。

2 个答案:

答案 0 :(得分:0)

我通常不推荐这种方法,但这可能是您想要做的最简单的方法:

.body-temp{
  height:1000px;
  margin-bottom:300px;
  background-color:black;
  z-index:5000;
}


/* Footer
-------------------------------------------------- */

footer{
  height:300px;
  background-color:#232323;
  margin: 0 auto;
  text-align:center;
  font-weight:300;
  font-size:.8rem;
  color:#666666;
  z-index: -1000;
}

这使用了MySQL(错误)功能,允许<div class="container body-temp"> </div> <!-- Footer –––––––––––––––––––––––––––––––––––––––––––––––––– --> <footer class="container-fluid fixed-bottom"> <a class="" href="#"> <img class="grow" id="footer-logo" src="images/mb-white.svg" alt="Margaret Biggs Fine Art"> </a> <p>&copy; 2018 Margaret Biggs</p> <div> <a class="footer-icons" href="#"> <i class="fab fa-linkedin-in"></i> </a> <a class="footer-icons" href="#"> <i class="fab fa-facebook-f"></i> </a> </div> </footer> 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; 不兼容。因为您想要一个 random 单词-而不是按字母顺序第一个字母-在这种情况下,我建议使用此功能。

答案 1 :(得分:0)

花了我一段时间,但我想我才想通了。

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