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

Преглед:

Не правете HTML в контролера, защото това е лоша практика в MVC. Използвайте 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 Case Statement



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да свържете множество редове в една колона в MySQL

  2. MySQL DB избира записи със и без умлаути. напр.:'.. където нещо =FÖÖ'

  3. SQL, който изброява всички рождени дни през следващите и предходните 14 дни

  4. Грешка в синтаксиса на readyStatement

  5. Тире в имената на колони в MySQL DB