Mysql 计算每个唯一元素在“选择”查询中出现的次数

Mysql 计算每个唯一元素在“选择”查询中出现的次数,mysql,sql,select,count,Mysql,Sql,Select,Count,我有一个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 'a

我有一个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中执行此操作?

尝试以下操作:

SELECT iwebs , COUNT(iwebs) FROM wordstable GROUP BY iwebs
针对特定需求进行编辑

SELECT iwebs , COUNT(iwebs) FROM wordstable  WHERE `iwebs` IN 
iwebs的组('a1','a2','a3','a4','a5','a6','a7','a8','a9','a10')尝试以下方法:

SELECT iwebs , COUNT(iwebs) FROM wordstable GROUP BY iwebs
针对特定需求进行编辑

SELECT iwebs , COUNT(iwebs) FROM wordstable  WHERE `iwebs` IN 
iwebs的组('a1','a2','a3','a4','a5','a6','a7','a8','a9','a10')尝试以下方法:

SELECT iwebs , COUNT(iwebs) FROM wordstable GROUP BY iwebs
针对特定需求进行编辑

SELECT iwebs , COUNT(iwebs) FROM wordstable  WHERE `iwebs` IN 
iwebs的组('a1','a2','a3','a4','a5','a6','a7','a8','a9','a10')尝试以下方法:

SELECT iwebs , COUNT(iwebs) FROM wordstable GROUP BY iwebs
针对特定需求进行编辑

SELECT iwebs , COUNT(iwebs) FROM wordstable  WHERE `iwebs` IN 

iwebs的('a1'、'a2'、'a3'、'a4'、'a5'、'a6'、'a7'、'a8'、'a9'、'a10')组

好吧,您应该能够将@Ilesh的解决方案与您的请求结合起来:

SELECT iwebs, COUNT(iwebs) FROM wordstable WHERE iwebs IN ('a1','a2','a3','a4') GROUP BY iwebs

好吧,经过一点思考,您应该能够将@Ilesh的解决方案与您的请求结合起来:

SELECT iwebs, COUNT(iwebs) FROM wordstable WHERE iwebs IN ('a1','a2','a3','a4') GROUP BY iwebs

好吧,经过一点思考,您应该能够将@Ilesh的解决方案与您的请求结合起来:

SELECT iwebs, COUNT(iwebs) FROM wordstable WHERE iwebs IN ('a1','a2','a3','a4') GROUP BY iwebs

好吧,经过一点思考,您应该能够将@Ilesh的解决方案与您的请求结合起来:

SELECT iwebs, COUNT(iwebs) FROM wordstable WHERE iwebs IN ('a1','a2','a3','a4') GROUP BY iwebs



这是一个简单的计数/分组by@paqogomez:否,正常计数和groupby将返回“表”中每个元素出现的次数。但是看看我的查询,我正在使用
like
关键字查找一组“项”,我只需要知道它们在“搜索”中出现了多少次。这是一个简单的计数/组by@paqogomez:否,正常计数和groupby将返回“表”中每个元素出现的次数。但是看看我的查询,我正在使用
like
关键字查找一组“项”,我只需要知道它们在“搜索”中出现了多少次。这是一个简单的计数/组by@paqogomez:否,正常计数和groupby将返回“表”中每个元素出现的次数。但是看看我的查询,我正在使用
like
关键字查找一组“项”,我只需要知道它们在“搜索”中出现了多少次。这是一个简单的计数/组by@paqogomez:否,正常计数和groupby将返回“表”中每个元素出现的次数。但是看看我的查询,我正在使用
like
关键字查找一组“项”,我只需要知道它们在“搜索”中出现了多少次。不,这不是我需要的。这将返回“表”中的所有计数。但是看看我的查询,我在寻找一组值,我只需要知道它们出现了多少次,而不是整个。检查我在其中添加WHERE子句的编辑,或者你可以在第一个查询中使用与你在问题中相同的WHERE条件。它生成了一个错误
您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解在“WHERE
iwebs”附近使用的正确语法('a1','a2','a3','a4','a5','a6','a7','a8','a9','a10')不,这不是我需要的。这将返回“表”中的所有计数。但是看看我的查询,我在寻找一组值,我只需要知道它们出现了多少次,而不是整个。检查我在其中添加WHERE子句的编辑,或者你可以在第一个查询中使用与你在问题中相同的WHERE条件。它生成了一个错误
您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解在“WHERE
iwebs”附近使用的正确语法('a1','a2','a3','a4','a5','a6','a7','a8','a9','a10')不,这不是我需要的。这将返回“表”中的所有计数。但是看看我的查询,我在寻找一组值,我只需要知道它们出现了多少次,而不是整个。检查我在其中添加WHERE子句的编辑,或者你可以在第一个查询中使用与你在问题中相同的WHERE条件。它生成了一个错误
您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解在“WHERE
iwebs”附近使用的正确语法('a1','a2','a3','a4','a5','a6','a7','a8','a9','a10')不,这不是我需要的。这将返回“表”中的所有计数。但是看看我的查询,我在寻找一组值,我只需要知道它们出现了多少次,而不是整个。检查我在其中添加WHERE子句的编辑,或者你可以在第一个查询中使用与你在问题中相同的WHERE条件。它生成了一个错误
您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在“WHERE
iwebs`IN('a1'、'a2'、'a3'、'a4'、'a5'、'a6'、'a7'、'a8'、'a9'、'a10')”附近使用的正确语法,如果您想获得正确的输出,请尝试将CAST(CONCAT('[',iwebs',','a2 COUNT(iwebs),'a4'))作为字符(64)作为wordstable中的计数按iwebsYeah分组您的代码工作正常。但您在评论中“确切地说是您的输出”是什么意思?您写道,您希望有一个像[A1100][a2,29]这样的输出……这就是concat为您所做的……用方括号将两个结果列重新格式化为一个。不,我不需要括号。我用括号显示“一行”如果你想有更好的输出,试试选择CAST(