【问题标题】:SELECT COUNT(*) AS count - How to use this countSELECT COUNT(*) AS count - 如何使用此计数
【发布时间】:2015-04-18 03:04:53
【问题描述】:

而不是做:

$cars = $mysqli->query("SELECT * FROM cars");
$count = $cars->num_rows();
if ($count) {
  // is rows
}

我不想选择所有行或单个列,我只想要计数。

在我的脑海中:

$cars = $mysqli->query("SELECT COUNT(*) as count FROM cars");

但是我该如何使用该计数值呢?我需要对其运行 if 语句。

【问题讨论】:

    标签: php mysql sql mysqli count


    【解决方案1】:

    不建议在 SQL 中使用保留字作为名称。所以我改为调用计数结果cnt。由于您的函数是标量的,即您只期望返回一个值,您可以使用:

    $count = $mysqli->query("select count(*) as cnt from cars")->fetch_object()->cnt; 
    

    【讨论】:

      【解决方案2】:

      选择查询总是返回一个结果集。 要计数,请使用fetch_row()

      $result = $db->query("SELECT COUNT(*) FROM `cars`");
      $cars= $result->fetch_row();
      echo '#: ', $cars[0];// or use $c= $cars[0];
      

      【讨论】:

        【解决方案3】:

        您需要获取结果的第一行并查看“计数”列值:

        $cars = $mysqli->query("SELECT COUNT(*) as count FROM cars");
        $firstrow = $cars->fetch_assoc();
        
        if ($firstrow['count'] > 0)
        {
          // ...
        }
        

        【讨论】:

          【解决方案4】:

          如果结果是一个对象,那么:

          $cars = $mysqli->query("SELECT count(*) as count FROM cars");
          $carRows = $cars->result();
          echo $carRows[0]->count;
          

          如果返回数组则:

          $cars = $mysqli->query("SELECT count(*) as count FROM cars");
          $carRows = $cars->result_array();
          echo $carRows[0]['count'];
          

          【讨论】:

          • 我找不到 ->result();或 ->result_array(); php 文档中的任何位置
          【解决方案5】:

          您有许多选项可用于从 SQL 获取计数。

          如果您已经在使用 PHP 8.1,最简单的方法是:

          $count = $mysqli->query("SELECT COUNT(*) FROM cars")->fetch_column();
          

          这里列出了其他可能的方法:

          • 使用关联数组:
          $count = $mysqli->query("SELECT COUNT(*) as count FROM cars")->fetch_array()['count'];
          
          • 使用数值数组:
          $count = $mysqli->query("SELECT COUNT(*) FROM cars")->fetch_array()[0];
          
          • 使用对象表示法
          $count = $mysqli->query("SELECT COUNT(*) as count FROM cars")->fetch_object()->count;
          

          重要的一点。如果您需要在查询中使用变量输入,那么您应该使用准备好的语句。要获得计数,它看起来像这样:

          $stmt = $mysqli->prepare("SELECT COUNT(*) FROM cars WHERE category=?");
          $stmt->bind_param('s', $category);
          $stmt->execute();
          $count = $stmt->get_result()->fetch_row()[0];
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-10-08
            • 1970-01-01
            • 1970-01-01
            • 2014-02-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多