2014-02-08 54 views
0

我的表是這樣的:如何在MySQL和PHP中選擇一個隨機行?

id,url,name,imagelink 

,我想這樣做:

SELECT * FROM id WHERE id="randomid" 

我想從一個隨機的行中的所有數據,如id=17,url17,name17,imagelink17並將其保存在變量後記。 e.g $ currentid,$ CURRENTURL,$ currentname,$ currentimagelink

我已經試過類似的東西:

"SELECT * FROM table WHERE id= ORDER BY rand() LIMIT 20"; 

這顯然沒有奏效。我怎樣才能正確地做到這一點?

+0

@kingkero作出這樣的回答;) –

+0

@kingkero錯了,他需要使用'IN' –

+0

,將返回所有條目。我只想顯示一個 –

回答

3

由於您不想要特定的行,請將WHERE id=置於查詢之外,並且它應該可以正常工作。

SELECT * FROM table ORDER BY RAND() LIMIT 20 

將返回20個隨機行,

SELECT * FROM table ORDER BY RAND() LIMIT 1 

會給你只有一個

+1

非常感謝!我會在10分鐘內接受答案;) –

-1

你可以有這樣的查詢:

SELECT * FROM table_name ORDER BY RAND() LIMIT 1 
+1

是不是這個(基本上)與kingkero的答案相同? –

+0

當我發佈,這個答案,沒有顯示。可能是網速慢的問題 –

+0

不用擔心,@Shri。如果你願意,你可以刪除你的答案。就我個人而言,我認爲不需要在同一個線程上存在兩個完全相同的答案。 :-) –

1

嘗試是這樣的:

$query = "SELECT * FROM table_name ORDER BY RAND() LIMIT 1"; 
$result= mysqli_query($connection, $query); 

和變量可以有

while($row = mysqli_fetch_array($result)) 
     { 

     $currenid=$row['id']; 
     $currenturl=$row['url']; 
     $currentname=$row['name']; 
     $currentimagelink=$row['imagelink']; 

     } 
+0

也正確謝謝! –

+0

@kingkero完成了查詢,但我也發佈了這個,因爲他沒有寫如何設置變量,希望我幫助:) – markerstone

相關問題