这是我得到的mySQL
id terms
1 a
2 c
3 a
4 b
5 b
6 a
7 a
8 b
9 b
10 b
我想得到按字母排序的字母顺序列表,如下所示
terms count
a 4
b 5
c 1
我需要哪些mySQL语句?
答案 0 :(得分:6)
我相信这样的事情会起作用:
SELECT terms, COUNT( id) AS count
FROM table
GROUP BY terms
ORDER BY terms DESC
答案 1 :(得分:6)
通过SQL中的一个或多个列或表达式的值将选定的一组行分组到一组摘要行中。每组返回一行。 SELECT子句列表中的聚合函数提供有关每个组而不是单个行的信息。
您只需要应用group by
子句获取结果
select terms, count (id) as count from table
group by terms
order by terms
答案 2 :(得分:1)
我对二手唱片店的需求非常相似,以字母方式显示库存中的艺术家,并在括号中显示,例如:
Smokey Robinson和奇迹(2)| Sonic Youth(2)|勺子(3)| Steely Dan(1)| Stevie Wonder(2)| Sufjan Stevens(1)|
请注意,从表“记录”中提取时,我使用了SELECT DISTINCT。以下是相关的代码段:
//QUERY
$arttool = mysql_query("SELECT DISTINCT * FROM records GROUP BY artist ORDER BY artist ASC");
//OUTPUT LOOP START
while($row = mysql_fetch_array($arttool)){
//CAPTURE ARTIST IN CURRENT LOOP POSITION
$current=$row['Artist'];
//CAPTURING THE NUMBER OF ALBUMS IN STOCK BY CURRENT ARTIST
$artcount = mysql_num_rows(mysql_query("SELECT * FROM records WHERE artist = '$current'"));
//ECHO OUT.
echo $current . "($artcount)";
我网站中的实际代码更复杂,但这是它的基础。希望有所帮助...