MySQL REGEXP 匹配逗号分隔列表中的零

标签 mysql regex

我有一个表列,其中包含一个短逗号分隔的整数列表。

我正在尝试构建一个用于报告目的的查询,该查询标识包含以下内容的行数:

  • 列表有前导零
  • 列表包含零
  • 列表全为零

以下是我目前所拥有的(我只能找出前导零):

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 。

最佳答案

尝试:

  1. ,0+,|^0+,|,0+$

    • 开头、中间和结尾处的零的 3 个备选方案。
  2. ^(0,?)+$

    • ^$ 是 anchor
    • (0,?)+ 表示多个零,后面可以跟一个逗号。

关于MySQL REGEXP 匹配逗号分隔列表中的零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36412928/

相关文章:

php - 正则表达式捕获额外的字符

javascript - 使用正则表达式删除逗号分隔列表中的重复项?

java - ResultSetImpl.checkColumnBounds 或 ResultSetImpl.getStringInternal 中偶尔出现 NullPointerException

python - 如何确保捕获组超过 5 个字符?

mysql - 每个日期的 SQL 总和

mysql - 具有多个分隔符的 AWK

javascript - 如何使用正则表达式仅获取字符串的特定部分?

javascript - 正则表达式,匹配 3 组,第二组和第三组可能是可选的

php 登录脚本如果返回 else 即使登录信息在 db 中是正确的

php - HTML/PHP 登录重定向到 php