0

我有一个 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'];
  }

这很好用,但我觉得我做错了。有没有办法用一个命令而不是三个命令来做到这一点?

4

1 回答 1

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 

这将返回一行中的所有字段。

请注意,随机行与任意行非常不同。随机行实际上意味着每一行都有相同的机会被选中。任意行只是不确定的。selecta 中没有 an的第一行order by是任意的,但绝对不是随机的。

于 2013-07-21T15:35:15.930 回答