[英]Simple random query from database
我目前有一個廣告列表網站,上面有3個訂購過濾器。 默認情況下,廣告按以下行排序:
$this->setState('filter_order', $app->getUserStateFromRequest('com_adsman.filter_order','filter_order', "start_date"));
當我將start_date更改為另一個列名時,默認情況下它將按該列排序,因此我知道這是需要進行更改的地方。 現在,基於上述代碼,我將如何顯示隨機結果?
謝謝!
編輯:這是調用實際查詢的位置。
$Orderings[] = "`a`.$filter_order $filter_order_Dir";
$Orderings[] = "`a`.`id` $filter_order_Dir ";
$query = " SELECT ".implode(",",$SelectCols)." \r\n ".
" FROM `#__ads` AS `a` \r\n".
implode(" \r\n ",$JoinList)."\r\n".
$where."\r\n".
" GROUP BY `a`.`id` ".
" ORDER BY ".implode(",",$Orderings)." \r\n ";
我正在考慮使用類似
$ rand = rand(.implode(“,”,$ SelectCols));
並將$ filter_order更改為$ rand ..我知道這將無法正常工作,語法錯誤,所有內容均不正確,這是我需要幫助的地方!
好吧,因為查詢是在其他地方創建的,並且只填充了此行中的參數...您不能只更改此行...
找到實際的查詢...在此行中添加新列,例如“ rand()as random”,然后將“ start_date”更改為“ random” ...
//編輯:
$query = " SELECT ".implode(",",$SelectCols).",rand() as random \r\n ".
" FROM `#__ads` AS `a` \r\n".
implode(" \r\n ",$JoinList)."\r\n".
$where."\r\n".
" GROUP BY `a`.`id` ".
" ORDER BY ".implode(",",$Orderings)." \r\n ";
應該給您一個隨機的列命名為“ random”(當然,如果已經有一個具有該名稱的列,那將會很麻煩……所以也許選擇一個唯一的名稱而不是“ random”)
使用"RAND()"
作為ORDER BY
列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.