2017-08-10 2 views
0

1行を返します。テーブルに行がありませんカウント表の行は、私はidはのは、このコマンドで32を言わせている行カウントする

$countReviews = Yii::$app->db->createCommand("SELECT COUNT(*) 
               FROM `product_review` 
               WHERE `product_review`.`product_id`=$book->id")->execute(); 

が、これは、結果として1を返します。 。何故ですか ?これはタスクを実行するための正しい方法ですか?ありがとう!

+0

あなたは1などの値を返してもよろしいですか? –

答えて

2

いいえGROUP BYの集約クエリでは、常にが1つの行を返します。 の値のは0ですが、行の数は1です。

私はあなたがカウントによって返された値ではなく、クエリによって返された行の数を調べていると思います。

+1

はい!別のテストを行い、結果が0であることを確認しました。配列に0を含む1つの結果があるので、実際に配列の長さを見ていました。 –

2

​​は、データを操作するSQLクエリ(挿入/更新/削除など)です。 documentationが言うように:

この方法は、非クエリに、このようなINSERT、DELETE、UPDATE系SQLなど SQL文を実行するためにのみ使用してください。 結果セットが返されます。

あなたは1つの整数値を期待しているようあなたはここでquery()、あるいはquerySacalar()を使用する必要があります。

+0

ありがとう!私はもう一度私が推測するドキュメントを読む必要があります。 –

関連する問題