【发布时间】:2014-04-25 05:32:25
【问题描述】:
我有一个包含数百万条记录的 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 在 select 查询中出现 400 次”、“a2 在 select 查询中出现 100 次”、“a3 在 select 查询中出现 5 次”和“a5 在 select 查询中出现 500 次”等等开。
如何在 SQL 中执行此操作?
【问题讨论】:
-
这是一个简单的计数/分组方式
-
@paqogomez:不,正常计数和 groupby 将返回每个元素在“表”中出现的次数。但是看看我的查询,我正在使用
like关键字寻找一组“项目”,我只需要知道它们在“搜索”中出现了多少次。