2

というテーブルがrepliesあり、。という名前の列がありますtopic_id

私がやりたいのは、topic_id1を持つ行の数を数えることです。

私は試した

SELECT COUNT(*) 
FROM [***].[replies] 
WHERE [***].[topic_id] = '1'

しかし、この場合、これが有効なクエリであるかどうかはわかりません。もしそうなら、どうすればそれを$num_rows私のphpコードで呼び出された変数に戻すことができますか?

注:*は実際には私がカバーしたプレフィックスです。

4

1 に答える 1

3

このようなものが動作するはずです:

--declare the variable
DECLARE @num_rows INT

--get the total number of rows
SELECT @num_rows = COUNT(*) FROM replies WHERE topic_id = 1

--get a distinct count of rows (if for some reason you need it)
SELECT @num_rows = COUNT(DISTINCT reply_id) FROM replies WHERE topic_id = 1

--return the result set
SELECT @num_rows AS num_rows

ただし、呼び出された列を返したいだけの場合はnum_rows、これがはるかに効率的なアプローチになります。

SELECT COUNT(*) AS num_rows FROM replies WHERE topic_id = 1
于 2012-05-07T20:38:15.137 に答える