您好我想在mysql列中获取类似值的计数,例如,我必须从 计算' 10' product_id(' 9,10,9,10,9,10') ,其结果应该是 &#39 ; 3' 使用MySQL。有没有办法做到这一点
答案 0 :(得分:2)
@JaydipJ有正确的想法,但更安全的方法是:
SET @str = '9,10,9,10,9,10';
SET @tofind = '10'
SELECT (LENGTH(CONCAT(',', @str, ',') -
LENGTH(REPLACE(CONCAT(',', @str, ','),
CONCAT(',', @tofind, ','
), ''
)
)
) / LENGTH(@tofind)
如果字符串包含101或101010,则应返回正确的结果。
如评论中所述。将SQL中的列表存储在逗号分隔的列表中是一个坏主意。这种字符串操作通常以更合适的语言完成。
答案 1 :(得分:1)
假设该列的值为'9,10,9,10,9,10'
且搜索字符串为两位数,那么您可以找到这样的事件
SELECT (LENGTH('9,10,9,10,9,10') - LENGTH(REPLACE('9,10,9,10,9,10','10','')) ) / LENGTH('10')