2014-02-08 51 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

相关问题