0

"nameid" と "name" の 2 つの列しかない SQL テーブルがあります。データベースからランダムな名前を取得したい。

私がこれを行う前に:

    $result = mysql_query("SELECT * FROM nametable",$db);
    $number = mysql_num_rows($result);
    $random = rand(1,$number);
    list($name) = mysql_fetch_row(mysql_query("SELECT name FROM nametable WHERE nameid=$random",$db));

どうすればDoctrineで同じことができますか?

4

1 に答える 1

0

MySQL には、ランダムな浮動小数点値を生成する関数がありますRAND()。これで並べ替えると、名前はランダムに並べられます。この後、ランダムに並べられた最初の名前を選択するだけです。

SELECT name FROM nametable ORDER BY RAND() LIMIT 1

Doctrine では、これは以下を使用して実行できます。

$name = Doctrine::getTable('nametable')
  ->createQuery()
  ->select('name')
  ->orderBy('RAND()')
  ->fetchOne();
于 2012-04-09T17:39:55.173 に答える