我的 mySQL 数据库中有一个列,它将日期存储在逗号分隔的列表中。由于这个数据库的需要和动态结构,它需要是一个逗号分隔的列表,格式如下:
date,date,date,date,date,date,date,date
一个真实的集合可能是这样的:
2012-01-01,2012-03-12,,,,,,
我需要能够在我的查询中计算此列表中的日期数。对于上面的示例集,该集中的日期数为两个(2012-01-01 和 2012-03-12)。出于我的目的,我需要知道此列表中是否有 8 个日期。我找到了不同的解决方案,并且通过这样的方法获得了成功,这给了我数字 1 在字符串中的次数:
LENGTH(_COLUMN_) - LENGTH(REPLACE(_COLUMN_, '1', ''))
如果我将“1”更改为正则表达式,那么我无法让它工作。部分问题是我也找不到一个正则表达式的解决方案,它可以准确地找到####/##/## 而不是日期的任何其他变体。
我仍在学习 mySQL 和正则表达式,正在寻求帮助。
谢谢。