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

Count character groups in string with semi colons

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

我有以下示例字符串。

7849;7985;8044;8253;8254;16733

我需要计算字符串中'Ids'的个数。使用上面的示例,它应该显示为 6,因为分号之间的每组数字代表一个 ID。

感谢任何帮助。

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

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

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

的单独行上

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