我有一个SQL数据库,里面有三个表叫做...
Fruit Name
Fruit Color
Fruit Price
我试图从这三个表中的每个表中返回一个随机结果给我举例......
Apple - Green - $10
目前我这样做是通过运行以下PHP三次(每个用不同的表)
$result = mysqli_query($con,"SELECT * FROM fruitname");
while($row = mysqli_fetch_array($result))
{
echo $row['fruitname'];
}
这种方法很好,但我觉得我的方式错了。有没有办法将此作为一个命令而不是三个?
答案 0 :(得分:2)
如果你真的想要随机行,你可以这样做:
select *
from (select * from FruitName order by rand() limit 1) fn cross join
(select * from FruitColor order by rand() limit 1) fc cross join
(select * from FruitPrice order by rand() limit 1) fp
返回一行中的所有字段。
请注意,随机行与任意行非常不同。随机行实际上意味着每行具有相同的被选择机会。任意行只是不确定的。 select
没有order by
的第一行是任意的,但绝对不是随机的。