Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Memilih kata-kata acak dari tabel

Anda dapat menambahkan kolom, mis. word_length yang berisi panjang kata, dan tambahkan indeks pada word_length kolom. Biasanya akan menjadi desain yang buruk untuk memasukkan data yang dapat diturunkan dari kolom lain, tetapi dalam hal ini Anda perlu merusak kemurnian demi kinerja. Kemudian kueri Anda dapat menggunakan JOIN kondisi menggunakan kolom ini:

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

Anda dapat menggunakan INSERT dan UPDATE pemicu untuk mengisi word_length kolom secara otomatis.

Mungkin juga berguna untuk melakukan penggabungan setelah memfilter ke 5 baris:

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. Normalisasi basis data untuk sistem perpesanan seperti facebook

  2. pilih kueri untuk data kategori dengan hubungan induk anak

  3. Pilih kueri menggunakan IN() dan tanpa penyortiran apa pun

  4. Permintaan mysql untuk mengekstrak domain dari url

  5. Mencampur ANSI 1992 JOIN dan COMMA dalam kueri