Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Kết hợp ngẫu nhiên hai từ từ cơ sở dữ liệu MySQL

Bạn có thể nhận 10 phần tử ngẫu nhiên cho mỗi loại với các truy vấn như sau:

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;

và sau đó ghép chúng lại với nhau trong mã PHP của bạn, như sau:

$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);

Xin lưu ý rằng mã này không an toàn lắm (nó tạo ra giả định rằng truy vấn thứ hai luôn mang lại ít kết quả nhất như truy vấn đầu tiên), nhưng bạn hiểu rõ.

Chỉnh sửa:Đây là một truy vấn SQL duy nhất nên thực hiện điều đó:

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;

CHỈNH SỬA:ví dụ đã loại bỏ




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn các bản sao từ một hàng?

  2. mysqli_connect ():(HY000 / 2002):Không thể kết nối với máy chủ MySQL cục bộ thông qua socket

  3. giao dịch của tôi không được khôi phục khi có sự cố xảy ra trong C # với mysql?

  4. Người chọn người trúng thưởng vé xổ số PHP

  5. Chạy SQL thô khi di chuyển