用分号计算字符串中的字符组

问题描述

进行了一些搜索,但无法找到此问题的答案。字符串操作不是我的强项。

我有以下示例字符串。

7849;7985;8044;8253;8254;16733

我需要计算字符串中“Id”的数量。使用上面的例子,它应该是 6,因为分号之间的每一组数字代表一个 ID。

感谢任何帮助。

解决方法

您可以使用字符串函数计算分号的数量,然后加一个:

select (length(str) - length(replace(str,';','')) + 1 as num_elements

也就是说,您应该修复您的数据模型,这样您就不会在一个字符串中存储多个值。这些应该在另一个表的不同行上。

如果您不使用 MySQL,某些数据库使用 LEN() 而不是 LENGTH()