sql >> Databáze >  >> RDS >> Mysql

Seskupení více příkazů Mysql pro načtení počtu více stavů

Použijte CASE místo více dotazů

Model:

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');
 }

Zobrazit:

Nevytvářejte HTML v ovladači, protože je to špatný postup v MVC. Použijte foreach smyčka v souboru zobrazení pro zobrazení hodnotDalší informace o z Zobrazení 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>

Přečtěte si další informace o Prohlášení o případu MySQL



  1. Jak vytvořit databázi na serveru SQL

  2. Postgres selhává s 'nelze otevřít soubor mapování vztahů global/pg_filenode.map'

  3. Dotaz na granty pro tabulku v postgresu

  4. Jak vypočítat průměr sloupce a poté jej zahrnout do výběrového dotazu v oracle?