sql >> データベース >  >> RDS >> Mysql

複数のMysqlステートメントをグループ化して複数のステータスのカウントをフェッチする

    CASEを使用する 複数のクエリの代わりにステートメント

    モデル:

    public function summary($st_date,$end_date){
          $this->db->select("
             SUM(CASE WHEN status = 'D' THEN 1 END) AS draft,
             SUM(CASE WHEN status = 'N' THEN 1 END) AS unpublish,
             SUM(CASE WHEN status = 'Y' THEN 1 END) AS publish"
          );
          $this->db->where('added_date >=', $st_date);
          $this->db->where('added_date <=', $end_date);
          return $this->db->get('crm_listings');
     }
    

    表示:

    MVCでは悪い習慣なので、コントローラーでHTMLを作成しないでください。 foreachを使用する ビューファイルをループして値を表示する詳細については、CIビュー をご覧ください。

    <div class="table-responsive">
        <table class="table table-bordered table-striped">
            <tr>
               <th>Draft</th>
               <th>Unpublish</th>
               <th>Publish</th>
             </tr>
        <?php      
           if(isset($data) && count($data) > 0){
              foreach($data as $row ){ ?>
               <tr>
               <td><?= $row->draft ?></td>
               <td><?= $row->unpublish ?></td>
               <td><?= $row->publish ?></td>
               </tr>
           <?php } //Foreach end here
    
              } else { ?>
              <tr>
                 <td colspan="5">No Data Found</td>
              </tr>
           <?php } ?>
          </table>
    

    MySQLケースステートメント の詳細を読む



    1. DockerコンテナへのPostgreSQLのデプロイ

    2. Mac OS X Yosemite /ElCapitanでMySQLサーバーを自動起動する

    3. 非一意キーによるMysql外部キー-それはどのように可能ですか?

    4. 回復オプションがある場合と回復オプションがない場合のSQLServer復元データベースの調査