【问题标题】:How to find number of occurrence of a specific value in table column which contain pipe delimiter in MySQL query? [closed]如何在 MySQL 查询中查找包含管道分隔符的表列中特定值的出现次数? [关闭]
【发布时间】:2018-02-10 05:43:57
【问题描述】:

如何在 MySQL 查询中查找包含管道分隔符的表列中特定值的出现次数?

请参考以下字符串:

0|5573|73|5573|73

我想要上面字符串中 73 的计数,它的答案应该是 2。

-----------------------------
column            -- count
------------------------------
0|5573|73|5573|73 -- 2

【问题讨论】:

标签: java mysql


【解决方案1】:

请参考下面的 mysql 查询,该查询将根据您的问题返回不出现特定值。

在下面的查询中,test_table 是一个表,其中包含名为“test_colum”的列,其中包含 '0|5573|73|5573|73' 之类的值,并且您希望 找出其中出现值“73”的次数

SELECT 
    test_colum,  
(IF((POSITION('73|' IN test_colum))=1,1,0))
+
  ( ROUND (   
        (
            (LENGTH(test_colum)
            - LENGTH( REPLACE ( test_colum, "|73|", "")) 
            ) 
        ) / LENGTH("|73|")        
    ) 
+
IF((substring_index(test_colum,'|',-1) = '73'),1,0)) AS value_cnt
FROM test_table;

会产生如下结果:

test_colum         value_cnt
0|5573|73|5573|73    2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多