sql >> Databáze >  >> RDS >> Mysql

Náhodně zkombinujte dvě slova z databáze MySQL

Pomocí dotazů, jako je tento, můžete získat 10 náhodných prvků na typ:

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;

a pak je dejte dohromady do kódu PHP, například takto:

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

Vezměte prosím na vědomí, že tento kód není příliš bezpečný (předpokládá se, že druhý dotaz vždy poskytne nejméně tolik výsledků jako ten první), ale máte představu.

Edit:Zde je jeden SQL dotaz, který by to měl udělat:

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;

UPRAVIT:odstraněný příklad




  1. Jak najít cestu pg_config

  2. Přihlaste se pomocí LDAP pomocí JSF 2,1 a Apache Tomcat

  3. Jak zabránit někomu v návratu na předchozí stránku?

  4. Mysql LEFT JOIN tří tabulek se vrátí do mnoha řádků