Mysql “匹配”;1“;使用正则表达式
我想创建正则表达式来从流中查找单个1Mysql “匹配”;1“;使用正则表达式,mysql,sql,regex,database,Mysql,Sql,Regex,Database,我想创建正则表达式来从流中查找单个1 1,2 2,1 3、1、2 71818 71,17,11 1 注:所需马赫数为上一个列表中的粗体您可以使用任何一种方法 SELECT data FROM SAMPLE WHERE data REGEXP '^1,|,1$|,1,|^1$' [^\d]1,1[^\d]^1$ 这个很好这是另一个选项: \b1\b 它与“单词“1”匹配 详情: 从“re_格式”手册: \b匹配单词边界处的空字符串(单词的开头或结尾) 这里它与grep一起使用: $ gr
- 1,2
- 2,1
- 3、1、2
- 71818
- 71,17,11
- 1
注:所需马赫数为上一个列表中的粗体您可以使用任何一种方法
SELECT data FROM SAMPLE
WHERE data REGEXP '^1,|,1$|,1,|^1$'
[^\d]1,1[^\d]^1$
这个很好这是另一个选项:
\b1\b
它与“单词“1”匹配
详情:
从“re_格式”手册:
\b
匹配单词边界处的空字符串(单词的开头或结尾)
这里它与grep一起使用:
$ grep -e "\b1\b" text5
1,2
2,1
3,1,2
1
文件“text5”包含您的问题中的行:
$ cat text5
1,2
2,1
3,1,2
7,171,818
71,17,11
1
不必为regexp操心,只需执行以下操作:
WHERE find_in_set('1', col)
看
读起来比读起来容易
WHERE col REGEXP "[[:<:]]1[[:>:]]"
WHERE col REGEXP“[[::]”
我认为,如果您真的愿意,您很有可能能够做到这一点!相当简单的[^\d](1)[^\d]
仅在一些regexp引擎中实现\b
;不是MySQL的。相反,分别使用[[::]
作为“word”的开头和结尾。
WHERE col REGEXP "[[:<:]]1[[:>:]]"