【问题标题】:MYSQL count how many times SOME value is exist as value in a field of tableMYSQL 计算某些值作为值存在于表的字段中的次数
【发布时间】: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,不关心列名,只是例子
  • 不,不一样,我问的是如何计算 2 个值,你给的链接只计算一个字段中的 1 个值
  • omg,对不起,我错过了,我错了,我会编辑它

标签: php mysql sql


【解决方案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。你改变主意了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多