このようなものは可能ですか?
SELECT DISTINCT COUNT(productId) WHERE keyword='$keyword'
キーワードに関連付けられている固有の製品IDの数を取得する必要があります。同じ商品がキーワードに2回以上関連付けられている可能性がありますが、商品IDごとに1回だけカウントされるようにしたい
このようなものは可能ですか?
SELECT DISTINCT COUNT(productId) WHERE keyword='$keyword'
キーワードに関連付けられている固有の製品IDの数を取得する必要があります。同じ商品がキーワードに2回以上関連付けられている可能性がありますが、商品IDごとに1回だけカウントされるようにしたい
回答:
使用する
SELECT COUNT(DISTINCT productId) from table_name WHERE keyword='$keyword'
SELECT COUNT(DISTINCT(productId)) from table_name WHERE keyword='$keyword'。私はあなたのバージョンが2つのパラメータを渡す方が好きCOUNT( )です。
あなたは近かった:-)
select count(distinct productId) from table_name where keyword='$keyword'
参考までに、これはおそらくより高速です。
SELECT count(1) FROM (SELECT distinct productId WHERE keyword = '$keyword') temp
これより、
SELECT COUNT(DISTINCT productId) WHERE keyword='$keyword'
SELECT count(*) FROM (SELECT distinct productId WHERE keyword = '$keyword') temp
このタイプの質問に関する別の回答は、以下のサンプルのように、製品名に基づいて製品ベースの数を区別するための別の回答です。
select * FROM Product

SELECT DISTINCT(Product_Name),
(SELECT COUNT(Product_Name)
from Product WHERE Product_Name = Prod.Product_Name)
as `Product_Count`
from Product as Prod

レコード数:4; 実行時間:2ms