MYSQL 计算某些值作为值存在于表的字段中的次数
Posted
技术标签:
【中文标题】MYSQL 计算某些值作为值存在于表的字段中的次数【英文标题】:MYSQL count how many times SOME value is exist as value in a field of table 【发布时间】:2017-06-12 01:42:07 【问题描述】:mysql 检查 some 值是否作为值存在于表的字段中
我有一个带有字段的表 A: id 名称 值 1 项目 1 822 2 项目 2 658 3 项目 3 321
我正在努力解决这个问题: 我想计算一个字段中存在多少次值 示例: 如果我要搜索 2 和 8,那么
结果是: 第 1 行的计数为 3(因为它有两个 2 和一个 8) 第 2 行的计数为 1(因为它有一个 8 数字) 第 3 行的计数为 1(因为它有一个 2 数字)
【问题讨论】:
列值的数据类型? (可怕的列名...) 值的数据类型是varchar,不关心列名,只是例子 How to count instances of character in SQL Column的可能重复 不,不一样,我问的是如何计算 2 个值,你给的链接只计算一个字段中的 1 个值 omg,对不起,我错过了,我错了,我会编辑它 【参考方案1】:select id, case when value like '%2%' then 1 else 0 end +
case when value like '%8%' then 1 else 0 end
from tablename
【讨论】:
【参考方案2】:您可以使用replace()
和length()
(或char_length()
)来做到这一点:
select (length(value) - length(replace(replace(value, '2', ''), '8', ''))) as num_occurrences
from t;
【讨论】:
等等.. 我认为你的答案更好@Gordon Linoff,因为使用你的代码,如果值为 2828,它将计为 4,很好 @Ridho,你说你想要第 2 行的第 1 行 (822),因为它有 8 和 2。你改变主意了吗?以上是关于MYSQL 计算某些值作为值存在于表的字段中的次数的主要内容,如果未能解决你的问题,请参考以下文章
区分 json 中不存在字段的时间和将其值作为 null 发送的时间
如何计算某些值在 SQL 表中出现的次数并在列中返回该数字?
mysql如何更新一个表中的某个字段值等于另一个表的某个字段值