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

Kombiner to ord fra en MySQL-database tilfældigt

Du kan få 10 tilfældige elementer pr. type med forespørgsler som denne:

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;

og sæt dem derefter sammen i din PHP-kode, som sådan:

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

Bemærk venligst, at denne kode ikke er særlig sikker (den antager, at den anden forespørgsel altid giver mindst lige så mange resultater som den første), men du forstår ideen.

Rediger:Her er en enkelt SQL-forespørgsel, der burde gøre det:

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:fjernet eksempel




  1. Flytning af data fra SQL Server til Oracle gentagne gange

  2. PGLogical 1.1-pakker til PostgreSQL 9.6beta1

  3. Plugin 'FEDERATED' er deaktiveret

  4. Broken Pipe Exception on Grails App