簡體   English   中英

來自數據庫的簡單隨機查詢

[英]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.

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