php – 从mysql查询中打印一个随机行

前端之家收集整理的这篇文章主要介绍了php – 从mysql查询中打印一个随机行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我一直在寻找一种创建协作翻译小部件的方法.所以我有一个mysql数据库和表(称为翻译),以及一个允许用户一次翻译一个页面的小脚本.

但我不太相信我的剧本.我觉得它不够高效.首先,MysqL获取所有具有空“en”列的行,然后通过屏幕显示其中一个行.有没有其他方法这样做?这是代码

//Retrieve all the data from the "translations" table
$result = MysqL_query("SELECT * FROM translations WHERE en IS NULL OR en=''") or die(MysqL_error());

$Randnum=rand(0,MysqL_num_rows($result)-1); //Gets a random number between 0 and the maximum number of rows
$i=0;   //Start to 0
while($Col = MysqL_fetch_array($result))  //While there are rows to evaluate
    {
    if ($i==$Randnum)
        {
        echo "\"".$Col['es']."\"

我正在寻找类似“echo $Col [$Randnum] [‘es’]”或“echo $Col. $Randnum [‘es’]”的内容,而不是使用整个while循环来打印单个随机行.我该如何实现呢?如果只是优化问题.如果你可以带一个脚本或想法来分配$Col只有一行随机数和空’en’col,那就更好了! (我认为最后一点不可能). ‘en’行是文本,所以我不知道如何实现我见过的other methods,因为他们使用ORDER BY编号.

最佳答案
您可以在查询中使用ORDER BY RAND()LIMIT 1从数据库获取单个随机行.

猜你在找的MySQL相关文章