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

Gabungkan dua kata dari database MySQL secara acak

Anda bisa mendapatkan 10 elemen acak per jenis dengan kueri seperti ini:

select word from YOUR_TABLE where type = 'noun' order by rand() limit 10;
select word from YOUR_TABLE where type = 'adj' order by rand() limit 10;

dan kemudian menempatkan mereka bersama-sama dalam kode PHP Anda, seperti:

$phrases = array();

$adj_result  = mysql_query("SELECT word FROM words WHERE type = 'adj' ORDER BY RAND() LIMIT 10");
$noun_result = mysql_query("SELECT word FROM words WHERE type = 'noun' ORDER BY RAND() LIMIT 10");

while($adj_row = mysql_fetch_assoc($adj_result)) {
  $noun_row = mysql_fetch_assoc($noun_result);
  $phrases[$adj_row['word']] = $noun_row['word'];
}

print_r($phrases);

Harap perhatikan bahwa kode ini tidak terlalu aman (itu membuat asumsi bahwa kueri kedua selalu menghasilkan hasil paling sedikit sebanyak yang pertama), tetapi Anda mendapatkan idenya.

Sunting:Inilah satu kueri SQL yang harus melakukannya:

select t1.word, t2.word 
from 
  ((select word from YOURTABLE where type = 'adj' order by rand()) as t1), 
  ((select word from YOURTABLE where type = 'noun' order by rand()) as t2) 
order by rand()
limit 10;

EDIT:contoh yang dihapus




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. aplikasi web spring-boot kehilangan kemampuan untuk terhubung ke MySQL / RDS setelah beberapa saat

  2. Menggabungkan hasil kueri pemilihan tanpa menggunakan operator yang ditetapkan (UNION)

  3. Bagaimana cara membuang file MySQL tanpa Kunci Asing melalui baris perintah?

  4. Tidak dapat membuat server tertaut - server sql dan mysql

  5. gunakan pemicu yang sama untuk tabel yang berbeda