簡體   English   中英

PHP:從MySQL選擇多個count(id)作為一個查詢

[英]PHP : select multiple count(id) from MySQL as one query

我需要在一個查詢中優化以下代碼:

        $query = 'select count(id) as featured_ads from #___properties  WHERE featured = 1 and approved =1';
    $db->setQuery($query);
    $featured_ads = intval($db->loadResult());


    $query = 'select count(id) as wait_ads from #___properties  WHERE approved =0 and canceled<>"1" ';
    $db->setQuery($query);
    $wait_ads = intval($db->loadResult());


    $query = 'select count(id) as total_users from #__sresuad WHERE gid = 18 ';
    $db->setQuery($query);
    $total_users = intval($db->loadResult());

我該怎么辦?

您想在一次查詢中返回所有計數嗎? 解決此問題的一種簡單方法是讓所有SELECT都為外部SELECT定義字段:

SELECT
    (select count(id) from #___properties  WHERE featured = 1 and approved =1) AS featured_ads,
    (select count(id) from #___properties  WHERE approved =0 and canceled<>"1") AS wait_ads,
    (select count(id) from #__sresuad WHERE gid = 18) AS total_users

正如Lodder在其評論中所建議的那樣,手工編寫SQL查詢容易出錯和降低安全性,因此,如果可能,您可能要避免這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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