我有一个表列,其中包含一个短逗号分隔的整数列表。
我正在尝试构建一个用于报告目的的查询,该查询标识包含以下内容的行数:
- 列表有前导零
- 列表包含零
- 列表全为零
以下是我目前所拥有的(我只能找出前导零):
SELECT
COUNT(CASE WHEN col REGEXP '^0.*' THEN 1 ELSE NULL END) as leadingZeros,
COUNT(CASE WHEN col REGEXP '....' THEN 1 ELSE NULL END) as containsZeros,
COUNT(CASE WHEN col REGEXP '....' THEN 1 ELSE NULL END) as allZeros
FROM table;
我正在寻找适合第二种和第三种情况的正则表达式。
注意:此列将仅包含整数,不包含小数/ float 。
最佳答案
尝试:
,0+,|^0+,|,0+$
- 开头、中间和结尾处的零的 3 个备选方案。
^(0,?)+$
^
和$
是 anchor(0,?)+
表示多个零,后面可以跟一个逗号。
关于MySQL REGEXP 匹配逗号分隔列表中的零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36412928/