2011-07-11 3 views
1

J'ai une table dans MySQL avec une liste de mots-clés. Chaque mot-clé a été stocké dans une nouvelle ligne une fois qu'il a été entré par un utilisateur sur ce site.Nombre de lignes identiques dans MySQL avec PHP

J'ai la requête suivante en PHP:

SELECT * FROM keywords GROUP BY query 

qui obtient tous les mots-clés de MySql, et montre seulement un de chaque Incase de mots clés en double. Ainsi, la sortie est quelque chose comme:

Dog 
Cat 
Lion 
Fong 

Lorsque j'utilise $update['query'];

Mais je voudrais compter combien de fois chaque mot-clé apparaît dans la base de données, de sorte que la sortie serait, par exemple:

Dog (2) 
Cat (3) 
Lion (1) 
Fong (1) 

Et j'essaie de comprendre ce que la requête SQL devrait être, et comment l'imprimer en utilisant PHP.

+0

En ce moment, je serais satisfait de la solution la plus simple, mais si vous êtes d'humeur créative j'aimerais apprendre à faire avec/sans être sensible à la casse. –

Répondre

3

Essayez cette requête:

SELECT query, COUNT(1) AS rpt_count FROM keywords GROUP BY query 

et en PHP que vous accéder aux colonnes en utilisant $update['query'] et $update['rpt_count']

+0

oui, cela semble fonctionner :) Merci à tous! –

1
SELECT *, count(*) as cnt FROM keywords GROUP BY query 
+0

Vous pouvez également utiliser COUNT (*) AS count' – Ryan

+0

@Ryan - Oui, un alias aurait dû s'y trouver. Actualisé. –

1

Utilisez SELECT *, COUNT(*) AS cnt FROM keywords GROUP BY query.

1
SELECT *, count(1) FROM keywords GROUP BY query 
1
SELECT query, COUNT(query) FROM keywords GROUP BY query 
1
SELECT keyword, COUNT(*) FROM keywords GROUP BY keyword; 
Questions connexes