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

MySQL REGEXP匹配逗号分隔列表中的零,mysql,regex,Mysql,Regex,我有一个由逗号分隔的整数列表组成的表列 我正在尝试构建一个用于报告目的的查询,该查询标识包含以下内容的行数: 列表有前导零 列出conatains零 列表都是零 以下是我到目前为止的情况(我只能算出前导零): 我正在寻找正则表达式,以适应第二和第三种情况 注意:此列仅包含整数,不包含小数/浮点数 列表包含零 由于您要查找完整的单词匹配,请使用 REGEXP '[[:<:]]0+[[:>:]]' +表示出现一次或多次 请参见说明: ^-字符串的开头 0+-1或更多0s (,0+

我有一个由逗号分隔的整数列表组成的表列

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

  • 列表有前导零
  • 列出conatains零
  • 列表都是零
以下是我到目前为止的情况(我只能算出前导零):

我正在寻找正则表达式,以适应第二和第三种情况

注意:此列仅包含整数,不包含小数/浮点数

列表包含零

由于您要查找完整的单词匹配,请使用

REGEXP '[[:<:]]0+[[:>:]]'
+
表示出现一次或多次

请参见说明:

  • ^
    -字符串的开头
  • 0+
    -1或更多
    0
    s
  • (,0+)*
    -零个或多个序列:
    • -逗号
    • 0+
      -一个或多个
      0
      s
  • $
    -字符串结尾
试试:

  • ,0+,| ^0+,|,0+$

    • 开始、中间和结束时的3个零备选方案
  • ^(0,?)+$

    • ^
      $
      是锚定
    • (0,?)+
      表示后面可能跟逗号的多个零

  • 在类似于
    12134102
    的列表中,这不会给出假阳性吗?它与
    102
    中的零匹配?啊哈,你是说一个完整的单词匹配?使用
    REGEXP'[[::]]'
    ?我认为类似的东西会匹配
    0
    00
    000
    ,等等。全零解决方案有意义,您介意解释包含零解决方案中的语法吗?我已经添加了所有解释和演示。我选择了其他答案,因为更全面的解释/演示以及案例2中更清晰的解决方案。但是,我使用您的解决方案处理案例3。非常感谢。比较为匹配输入所需的步骤数-12-和-83。正则表达式在线性匹配时更好。较短的模式不必更有效。不明确。“1233004555”是否包含零?“012”是包含前导零,还是仅包含“0,0123”?当询问“零”时,您是指“数字”(如
    0
    ,但不是
    01
    101
    110
    )吗?还是“数字”(所有数字都包含“零”)?
    REGEXP '[[:<:]]0+[[:>:]]'
    
    REGEXP '^0+(,0+)*$'