0

我有一个只有两列的 SQL 表:“nameid”和“name”。我想从数据库中获取一个随机名称。

在我这样做之前:

    $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 回答