簡體   English   中英

從三個SQL表中返回隨機結果

[英]Return random result from three SQL tables

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

這很好,但我覺得我的方式是錯誤的。 有沒有辦法將此作為一個命令而不是三個?

如果你真的想要一個隨機行,你可以這樣做:

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 

這將返回一行中的所有字段。

請注意, 隨機行與任意行非常不同。 隨機行實際上意味着每行具有相同的被選擇機會。 任意行只是不確定的。 沒有order byselect的第一行是任意的,但絕對不是隨機的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM