2011-04-14 57 views
2

我有名字,看起来像这样:盘点记录

  • 安德鲁
  • 亚瑟
  • 巴里

我愿做其中找出如何查询许多记录以An,Ar,Ba开头。例如

  • 的,1
  • 氩气,1
  • BA,1

回答

9
Select COUNT(*),SUBSTRING(column_name,1,2) FROM table_name GROUP BY SUBSTRING(column_name,1,2) 
+0

酷,我不得不如P ETER和彼得的名字,任何方式修剪空出来? – Tom 2011-04-14 15:09:19

+0

ofcource first trim out TRIM(column_name) – jimy 2011-04-14 15:11:12

+0

@jimy - 我相信'TRIM'只会删除前面或后面的空格(或两者),而不是中间的那些。 @Tom可以使用'REPLACE(column_name,'','')' – Lamak 2011-04-14 15:13:32

2
SELECT SUBSTRING(name, 1, 2), COUNT(*) AS "Count" 
FROM mytable 
GROUP BY SUBSTRING(name, 1, 2) 
+0

你为什么别名'COUNT(*)'? :) – 2011-04-14 15:39:02

+0

我来自SQL Server的世界,如果你没有别名的功能,那么列标题将是空白的。这是不是在MySQL? – 2011-04-14 16:39:50

+0

对不起,这是我的一个奇怪的笑话。其实我的意思是问你为什么要给COUNT别名,但没有这样做到SUBSTRING。 :)对不起,应该在那里更严重。 – 2011-04-15 04:39:15