sql >> Database teknologi >  >> RDS >> Mysql

Valg af tilfældige ord fra tabellen

Du kan tilføje en kolonne, f.eks. word_length der indeholder længden af ​​ordet, og tilføj et indeks på word_length kolonne. Normalt ville det være dårligt design at inkludere data, der kan udledes fra en anden kolonne, men i dette tilfælde skal du bryde renheden for ydeevnens skyld. Så kan din forespørgsel bruge en JOIN tilstand ved hjælp af denne kolonne:

SELECT CONCAT(w1.my_word, w2.my_word) joined
FROM my_words w1
JOIN my_words w2 ON w1.word_length = 8 - w2.word_length
WHERE w2.word_length < 8
ORDER BY RAND()
LIMIT 5
 

Du kan bruge INSERT og UPDATE udløser for at udfylde word_length kolonne automatisk.

Det kan også være nyttigt at lave sammenkædningen efter at have filtreret ned til de 5 rækker:

SELECT CONCAT(word1, word2) joined FROM ( SELECT w1.my_word word1, w2.my_word word2 FROM my_words w1 JOIN my_words w2 ON w1.word_length = 8 - w2.word_length WHERE w2.word_length < 8 ORDER BY RAND() LIMIT 5) x

  1. MariaDb SQL Injection

  2. Konverter månedsnummer til månedsnavn i PostgreSQL

  3. MySqli:er det muligt at oprette en database?

  4. c++ mysql-forbindelse bad_alloc ved hjælp af c++-stik