Ответ 1
использовать
SELECT COUNT(DISTINCT productId) from table_name WHERE keyword='$keyword'
Возможно ли что-то подобное:
SELECT DISTINCT COUNT(productId) WHERE keyword='$keyword'
Я хочу получить количество уникальных идентификаторов продукта, связанных с ключевым словом. Один и тот же продукт может быть связан дважды с ключевым словом или более, но я бы хотел, чтобы только один раз учитывался для каждого идентификатора продукта.
использовать
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 связано с ключевым словом.
Вы были близки: -)
select count(distinct productId) from table_name where keyword='$keyword'
FYI, это, вероятно, быстрее,
SELECT count(1) FROM (SELECT distinct productId WHERE keyword = '$keyword') temp
чем это,
SELECT COUNT(DISTINCT productId) WHERE keyword='$keyword'
Что, черт возьми, все это работает?
слишком просто
если вам нужен список того, сколько productId в каждом ключевом слове здесь это код
SELECT count(productId), keyword FROM `Table_name` GROUP BY keyword;
Разве это не лучше с группой? Что-то вроде:
SELECT COUNT(*) FROM t1 GROUP BY keywork;