gpt4 book ai didi

mysql - 如何计算 MySQL 中给定字符串的匹配数?

转载 作者:可可西里 更新时间:2023-11-01 08:50:33 25 4
gpt4 key购买 nike

现有数据库包含一个名为“dependent_ages”的字段,一些示例数据看起来像“1,2,5”或“1yo and 3mo”或“4mo”。

需求是将这样的字符串转换成整数,也就是用“,”或“and”分隔的子串的个数。更准确地说,分隔符可以描述为正则表达式“,|\sand\s”。因此,对于上面的示例,转换后的整数是 3、2 和 1。基本上,我感兴趣的是有多少 匹配存在,而不是这些匹配的。所以不管个体值是“14yo”还是“4mo”,它都会被算作 1。

问题是找到一个可以做到这一点的MySQL表达式,例如

SELECT REGEXMATCHES(dependent_ages) as dependent_no ...

更新

一些回答/评论显示了对问题的一些普遍误解,所以我澄清了问题。

最佳答案

基于 MySQL 的文档 string functionsRegular Expressions ,我认为除了使用正则表达式比较返回 true (1) 或 false (0) 之外,不可能做任何事情。您无法返回匹配项,也无法返回匹配项的数量。我认为您甚至不能使用正则表达式来执行替换。

您可以使用 Stored Program :

  • 开始于:'son: 10yr * daughter: 5yr * son:6mo'
  • 第一步:将字符串中的所有 "*" 替换为 "" ==> 'son: 10yr daughter: 5yr son:6mo'
  • 第二遍:用 "*" 替换数字序列(所以 "15" 变成 "*")==> '儿子:*yr 女儿:*yr 儿子:*mo'
  • 第三遍:将非"*"替换为"" ==> '***'
  • 第四遍:返回字符串的长度 (3)。

对于大量记录来说,它会很慢而且很麻烦,但它会让你留在 MySQL 中。您可能还想考虑使用其他工具来下载行、进行处理,然后上传结果。

关于mysql - 如何计算 MySQL 中给定字符串的匹配数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15146462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com