第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果使用 MySQL IN 語句從數(shù)組中找不到匹配項,則返回 0

如果使用 MySQL IN 語句從數(shù)組中找不到匹配項,則返回 0

PHP
慕運維8079593 2021-09-18 10:46:54
我知道有很多類似的問題和答案,但在這種情況下,它們都不起作用,因為我使用IN語句從數(shù)組中獲取匹配項,而我的日期varchar由于其格式而采用數(shù)據(jù)類型。這里是:我正在嘗試檢查數(shù)據(jù)庫中是否存在數(shù)組項,并將每個項的計數(shù)作為一個數(shù)組。我的 SQL 查詢運行良好并獲得結(jié)果,但唯一的問題是我希望它為數(shù)據(jù)庫中不存在的數(shù)組項返回 0 而不是跳過它。例如,這里是我的數(shù)據(jù)庫表:postId   reactedTo   reactedDate126      Like        22 Jun 2019172      Haha        24 Jun 2019172      Wow         27 Jun 2019132      Like        27 Jun 2019這是我運行 SQL 查詢并將結(jié)果作為數(shù)組獲取的函數(shù)public function reactionsAnalytics() {    global $wpdb;    $tableName = $wpdb->prefix.'reactions';    $dates = $this->getLastNDays(7); //array('22 Jun 2019', '23 Jun 2019', ... ,'28 Jun 2019');    $reacts = $wpdb->get_results("SELECT reactedDate, count(*) AS count  FROM {$tableName}  WHERE reactedDate IN ('".implode("','", $dates)."')   GROUP     BY reactedDate", ARRAY_A);    $result = array();    foreach ($reacts as $react) {        $result[] = $react['count'];            }    wp_die(json_encode($result));}這個函數(shù)的預(yù)期輸出是 ["1","0","1","0","0","2","0"],但我得到 ["1","1" ,"2"]。如何防止 $reacts 查詢跳過未找到的項目并使其輸出 0?我試過使用COALESCE,IFNULL并SUM有各種變化,但得到了相同的結(jié)果,但沒有零。這是 SQL Fiddle,您可以使用它:http://sqlfiddle.com/#!9/ffbb98/5
查看完整描述

1 回答

?
呼啦一陣風

TA貢獻1802條經(jīng)驗 獲得超6個贊

無需嘗試使查詢復(fù)雜化,您只需稍微更改應(yīng)用程序 (PHP) 代碼即可。獲取數(shù)據(jù)庫中可用日期的查詢結(jié)果。現(xiàn)在,在 PHP 代碼中,只需檢查該日期的計數(shù)是否可用。如果是,使用計數(shù),否則設(shè)置為零。


// Change the SQL query result to an array with date as key, and count as value

$reacts_mod = array_combine(array_column($reacts, 'reactedDate'), 

                            array_column($reacts, 'count'));


// Now prepare the $result

$result = array();

// Loop over input dates here

foreach ($dates as $dt) {


    // If you have count obtained from the query result, then consider that else 0

    if ( isset($reacts_mod[$dt]) ) {

        $result[] = $reacts_mod[$dt];

    } else {

        $result[] = 0;

    }


    // Note: PHP7 code would be simply:

    // $result[] = $reacts_mod[$dt] ?? 0;

}


查看完整回答
反對 回復(fù) 2021-09-18
  • 1 回答
  • 0 關(guān)注
  • 532 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號