2017-09-01 46 views
-6

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

请参考下面的字符串:

0|5573|73|5573|73

我想要的73在上面的字符串计数它应该给的答案为2

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

欢迎堆栈溢出!请[参观],环顾四周,并仔细阅读[帮助],特别是[*我如何提出一个好问题?*](/ help /如何问) –

+0

[Count VARCHAR字段中字符串的出现次数?](https://stackoverflow.com/questions/12344795/count-the-number-of-occurrences-of-a-string-in-a-varchar-field) – juzraai

+0

好事是,当两个账户几乎同时创建时,这看起来不像是一个新的投票环,从未做过相同时间的任何事情,而是来自同一个地方。而且这个答案显然不是在OP之前提出这个问题,并且与OP一起安排的。 – Tom

回答

2

请参考下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 
相关问题