怎么在MYSQL中查询一个数次重复的次数?

怎么在MYSQL中查询一个数次重复的次数?,第1张

假设ID是表的关键字段,TopicID是回复所属的主题ID字段,其中1是变化的值,那么可以使用以下语句就可以了select count(ID) from bbs where topicID=1

利用Mysql中的 的聚合函数 count(*) 可以实现这个功能,例如需要查询data表中name出现次数最多的记录,可以先按照group by name分组,用count算出分组里的条数,再按照count排序:

select name,count(*) from data group by name order by count(*) DESC limit 1

不加limit限制将返回按照name重复次数排列的数据

标签:count(*), mysql这个你要用存储过程了吧,吧三次查询的结果汇聚到一张表中,然后再对一张表求和

SELECT

count(a.id) as  num ,

substring_index( substring_index( a.sign, ',', b.help_topic_id + 1 ), ',',- 1 ) AS a_sign

FROM

`album` AS a

JOIN mysql.help_topic b ON b.help_topic_id < ( length( a.sign ) - length( REPLACE ( a.sign, ',', '' ) ) + 1 )

group by a_sign  order by num desc limit 3

注意

1、mysql帐号要有help_topic表的 *** 作权限

2、当两个词出现次数同样时,先出现的会排在前面

3、group by 后面的 a_sign要与第三行 as后面的a_sign保持同样的字段名 且与不一样原本的字段名不一样,,如果想要用同样的字段名,用下面的sql语句

SELECT

sign,

count( * )  as num

FROM

(

SELECT

substring_index( substring_index( a.sign, ',', b.help_topic_id + 1 ), ',',- 1 ) AS sign

FROM

`album` AS a

JOIN mysql.help_topic b ON b.help_topic_id < ( length( a.sign ) - length( REPLACE ( a.sign, ',', '' ) ) + 1 )

) AS a

GROUP BY

sign  order by num desc limit 3


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8604586.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存