Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wybieranie losowych słów z tabeli

Możesz dodać kolumnę, np. word_length który zawiera długość słowa i dodaje indeks do word_length kolumna. Zwykle kiepskim projektem byłoby uwzględnienie danych, które mogą pochodzić z innej kolumny, ale w tym przypadku należy złamać czystość ze względu na wydajność. Następnie w zapytaniu można użyć JOIN warunek przy użyciu tej kolumny:

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

Możesz użyć INSERT i UPDATE wyzwalacze do wypełnienia word_length kolumna automatycznie.

Pomocne może być również wykonanie konkatenacji po przefiltrowaniu do 5 wierszy:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konwersja ciągu znaków DateTime w Pythonie na liczby całkowite w milisekundach

  2. MySQL:preferowany typ kolumny dla cen (produktów)?

  3. DATE_FORMAT w zapytaniu w CodeIgniter przy użyciu Active Record nie działa

  4. Wyszukiwarka słów Scrabble:budowanie trie, przechowywanie trie, używanie trie?

  5. Podział na partycje tabeli zawierającej miliard wierszy danych piłkarskich przy użyciu kontekstu danych