在我的SQL中,我有一个列id为&的表。订单。根据id& amp;显示网站数据。 Order.But我们想要改变数据的显示方式,我们想要随机化整个内容..任何人都可以建议SQL查询。
city_id city_name city_order
1 xyz 1
2 geh 2
3 tre 3
此致
答案 0 :(得分:3)
将ORDER BY RAND()
添加到查询的末尾
答案 1 :(得分:1)
你会做这样的事情:
select city_id, city_name, city_order from table_name order by rand()
其中table_name是表的名称
答案 2 :(得分:-1)
你可以像其他人建议的那样使用ORDER BY RAND()
,但是你也应该花些时间与你的查询可能曾经拥有的任何效率和性能相似。这是因为您现在根据以下内容订购结果集:
如果您的预期结果集足够小,不会导致:
然后只需获取所有潜在的内容项,然后使用array_rand()
或shuffle()
进行随机选择。
如果您的预期结果集足够大,以至于您不想将整个事情传递给PHP,那么我建议如下:
$sql =
"SELECT COUNT(*) 'count'
FROM content_table
WHERE [your conditions]";
$rs = $dbh->query($query);
$random = rand(0,$rs['count']);
$sql =
"SELECT field1, field2, ...
FROM content_table
WHERE [your conditions]
LIMIT $random, 1";
$rs = $dbh->query($sql);
这两个都会尊重你的索引。