如何在MySQL查询中查找包含管道分隔符的表列中特定值的出现次数?
请参阅以下字符串:
0|5573|73|5573|73
我想在上面的字符串中计算73
,它应该给出答案为2。
-----------------------------
column -- count
------------------------------
0|5573|73|5573|73 -- 2
答案 0 :(得分:2)
请参考下面的mysql查询,根据您的问题,该查询将不会返回特定值的出现。
在下面的查询中,test_table是一个表,其中包含名为' test_colum'的列。其中包含' 0 | 5573 | 73 | 5573 | 73' 等值,并且您希望 找到值#73;&# 39; 。
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