0

私は内部に3つのテーブルを持つSQLデータベースを持っています...

Fruit Name
Fruit Color
Fruit Price

たとえば、これら3つのテーブルのそれぞれからランダムな結果を返そうとしています....

Apple - Green - $10

現在、次のPHPを3回実行してこれを行っています(それぞれに異なるテーブルを使用)

$result = mysqli_query($con,"SELECT * FROM fruitname");
while($row = mysqli_fetch_array($result))
  {
  echo $row['fruitname'];
  }

これは問題なく機能しますが、間違った方法で行っているように感じます。これを 3 つではなく 1 つのコマンドで行う方法はありますか?

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 

これにより、すべてのフィールドが 1 行で返されます。

ランダムな行は、任意の行とは大きく異なることに注意してください。ランダム行とは、実際には、各行が選択される可能性が等しいことを意味します。任意の行は単に不確定です。selectのないa の最初の行order byは任意ですが、間違いなくランダムではありません。

于 2013-07-21T15:35:15.930 に答える