学说:从名称表中获取一个随机名称
问题描述:
我有一个只有两列的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));
我怎样才能做到与学说一样吗?
答
MySQL有一个函数用于生成随机浮点值RAND()
。按此排序时,名称将随机排序。在此之后,您只需选择第一个随机排序的名称即可。
SELECT name FROM nametable ORDER BY RAND() LIMIT 1
教义,这可以用
$name = Doctrine::getTable('nametable')
->createQuery()
->select('name')
->orderBy('RAND()')
->fetchOne();
谢谢你做!我不认为你知道CodeIgniter2 + Doctrine2会出现这种情况。 :) – jeremy 2012-04-09 18:09:32
我相信在CodeIgniter中使用Doctrine将与上面相同。如果你想使用Codeigniter的活动记录,它就像''this-> db-> select('name') - > from('nametables') - > order_by('name','random') - >限制(1)'。 – kba 2012-04-09 19:07:46