我有一个拥有数百万条记录的MySQL数据库,表格已编入索引。下面是表格结构。
我在表格中运行了以下代码。
SELECT `iwebs` FROM `wordstable` WHERE `iwebs` LIKE 'a1' or `iwebs` LIKE 'a2' or `iwebs` LIKE 'a3' or `iwebs` LIKE 'a4' or `iwebs` LIKE 'a5' or `iwebs` LIKE 'a6' or `iwebs` LIKE 'a7' or `iwebs` LIKE 'a8' or `iwebs` LIKE 'a9' or `iwebs` LIKE 'a10'
现在此代码生成以下输出(显示输出的一小部分)。
但是,这不是我需要的。我需要的是一个键值对,它显示每个元素在结果中出现的次数。像
这样的东西[a1,400]
[a2,100]
[a3,5]
[a5,500]
........
在上面的示例中,每个括号中的第一项表示单个元素出现在select
查询中,第二项表示出现的次数。
换句话说,它意味着“a1在选择查询中出现400次”,“a2在选择查询中出现100次”,“a3在选择查询中出现5次”和“a5在选择查询中出现500次”等等上。
如何在SQL中执行此操作?
答案 0 :(得分:2)
试试这个:
SELECT iwebs , COUNT(iwebs) FROM wordstable GROUP BY iwebs
针对具体要求进行编辑
SELECT iwebs , COUNT(iwebs) FROM wordstable WHERE `iwebs` IN
(' A1'' A2'' A3'' A4'' A5',& #39; a6',' a7',' a8',' a9',' a10')GROUP BY iwebs
答案 1 :(得分:1)
有一点想法,您应该能够将@Ilesh的解决方案与您的请求结合起来:
SELECT iwebs, COUNT(iwebs) FROM wordstable WHERE iwebs IN ('a1','a2','a3','a4') GROUP BY iwebs