Использование DISTINCT и COUNT вместе в запросе MySQL

Что-то вроде этого возможно:

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;