【发布时间】:2009-06-16 15:46:06
【问题描述】:
这样的事情可能吗:
SELECT DISTINCT COUNT(productId) WHERE keyword='$keyword'
我想要的是获取与关键字相关联的唯一产品 ID 的数量。同一个产品可能与一个关键字关联两次,或者更多,但我希望每个产品 ID 只计算 1 次
【问题讨论】:
这样的事情可能吗:
SELECT DISTINCT COUNT(productId) WHERE keyword='$keyword'
我想要的是获取与关键字相关联的唯一产品 ID 的数量。同一个产品可能与一个关键字关联两次,或者更多,但我希望每个产品 ID 只计算 1 次
【问题讨论】:
使用
SELECT COUNT(DISTINCT productId) from table_name WHERE keyword='$keyword'
【讨论】:
SELECT COUNT(DISTINCT(productId)) from table_name WHERE keyword='$keyword' 来做这件事。我更喜欢你的版本,最好将两个参数传递给COUNT( )。
你很亲密:-)
select count(distinct productId) from table_name where keyword='$keyword'
【讨论】:
我会这样做:
Select count(*), productid
from products
where keyword = '$keyword'
group by productid
这会给你一个像
这样的列表count(*) productid
----------------------
5 12345
3 93884
9 93493
这使您可以查看每个不同的 productid ID 中有多少与关键字相关联。
【讨论】:
仅供参考,这可能更快,
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
这到底是怎么回事花药
太简单了
如果您想要每个关键字中有多少 productId 的列表,这里是代码
SELECT count(productId), keyword FROM `Table_name` GROUP BY keyword;
【讨论】:
对于此类问题的另一个答案,这是我根据产品名称获取产品计数的另一个答案,如下面的示例:
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
【讨论】:
分组不是更好吗? 比如:
SELECT COUNT(*) FROM t1 GROUP BY keywork;
【讨论】: