首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

排除结果时MySQL NOT REGEXP不起作用

是因为使用了错误的正则表达式或者使用了不支持的语法。MySQL的正则表达式函数是REGEXP,而NOT REGEXP是用来排除匹配的结果。下面是一些可能导致NOT REGEXP不起作用的原因和解决方法:

  1. 错误的正则表达式:请确保正则表达式的语法正确,并且符合MySQL的正则表达式语法。可以使用在线正则表达式测试工具来验证正则表达式的正确性。
  2. 大小写敏感:MySQL的正则表达式默认是大小写敏感的。如果你想要进行大小写不敏感的匹配,可以在正则表达式前加上"i"标志,例如:SELECT * FROM table WHERE column NOT REGEXP BINARY 'pattern'
  3. 特殊字符转义:如果正则表达式中包含特殊字符,需要进行转义。例如,如果要匹配一个点号(.),需要使用反斜杠进行转义:SELECT * FROM table WHERE column NOT REGEXP 'pattern\.'
  4. 字符集问题:MySQL的正则表达式默认使用的是当前数据库的字符集。如果你的正则表达式中包含非ASCII字符,需要确保数据库的字符集正确设置,并且使用正确的字符集进行匹配。

如果以上方法都无法解决问题,可能是MySQL版本的问题或者其他配置问题。建议查阅MySQL官方文档或者咨询MySQL的技术支持来获取更详细的帮助。

腾讯云提供了多种云计算相关产品,包括云数据库MySQL、云服务器、云存储等。你可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于这些产品的信息和使用指南。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

mysql varchar类型字段为数字,不带引号查询查询结果与事实不符

但是同样的sql我们放到数据库中确是只能查到一条数据。...根源 mysql5.7 查询varchar类型的数据,不加引号,触发隐式转换导致的查询结果错误。...dev.mysql.com/doc/refman/… 源码解释 堆栈调用关系如下所示: 其中JOIN::exec()是执行的入口,Arg_comparator::compare_real()是进行等值判断的函数...这里经过测试,当数字超过16位以后,转成double类型就已经不准确了,例如20402702611292711会表示成20402702611292712(如图中val1) MySQL string转成...,因此在使用时必须仔细甄别 数字类型的建议在字段定义就定义为int或者bigint,表关联关联字段必须保持类型、字符集、校对规则都一致

1.5K10

正则表达式必知必会 - 匹配一组字符

结果上看,这个模式只匹配了 3 个文件名,与预期一致。         注意,虽然结果正确,但模式 [ns]a.\.xls 并非完全正确。...sec) mysql> select regexp_extract(@s, @r, 'c'), regexp_extract_index(@s, @r, 0, 'c'); +------------...mysql> set @r:='[ns]a[0-9]\\.xls'; Query OK, 0 rows affected (0.00 sec) mysql> select regexp_extract...三、排除         字符集合通常用来指定一组必须匹配其中之一的字符。但在某些场合,我们需要反过来做,即指定一组不需要匹配的字符。换句话说,就是排除字符集合里指定的那些字符。...不用逐个列出要匹配的字符,如果只是要把一小部分字符排除在外的话,这种写法就太冗长了。可以使用元字符 ^ 来排除某个字符集合。下面来看一个例子。

23020
  • 第05问:MySQL 在处理临时结果,内部临时表会使用多少内存?

    问题: MySQL 在处理临时结果集(UNION 运算 / 聚合运算等),会用到内部临时表(internal temporary table)。 那么内部临时表会使用多少内存呢?...MySQL 在其他元数据中,诸如 information_schema.INNODB_TEMP_TABLE_INFO 中,并不展示内部临时表的信息,如图: ?...因此如果进行估算,需要将数据量乘以一个较大的系数,才能准确估算。 ?...),可以极其方便地搭建 MySQL 多种架构的测试环境,命令简单优雅。...今后在实验中,我们会多次用到 dbdeployer,或者使用 MySQL 容器进行快速搭建和试验。 ? ---- 关于 MySQL 的技术内容,你们还有什么想知道的吗?赶紧留言告诉小编吧!

    1.8K10

    正则表达式必知必会 - 嵌入式条件

    \\d{3}-\\d{4}'; Query OK, 0 rows affected (0.00 sec) mysql> select regexp_count(@s, @r, 'n') c, regexp_extract...可以排除第3行(只允许出现 ) 或 -,两者不能同时存在),但第 4 行还是无法排除。正确的模式应该只在电话号码里有一个 ( 的时候才去匹配 )。...刚才使用的模式只在给定条件得到满足才执行表达式。条件还可以有else表达式,仅当给定的反向引用不存在(也就是不符合条件)才执行该表达式。用来定义这种条件的语法是(?...这样一来,33333- 就被排除在最终的匹配结果之外了。它有一个连字符,所以满足给定条件,但末尾缺少额外的 4 位数字。...环视条件用的并不是很多,因为使用更简单的方法往往可以实现差不多的结果。例如 MySQL 如下可以这样做。 mysql> set @r:='^\\d{5}(-\\d{4})?

    16130

    正则表达式必知必会 - 位置匹配

    mysql> select regexp_extract(@s, @r, '') s, regexp_extract_index(@s, @r, 0, '') i; +---------+------+...但这很可能并不是想要的结果。如果这样搜索所有的cat,并将其替换为dog,那么得到的只会是毫无实际意义的一句话。这就要用到边界了,也就是一些用于指定模式前后位置(或边界)的特殊元字符。...) mysql> select regexp_extract(@s, @r, '') s, regexp_extract_index(@s, @r, 0, '') i; +--------------...) mysql> select regexp_extract(@s, @r, '') s, regexp_extract_index(@s, @r, 0, '') i; +------+------+...只有当它出现在字符集合里,即位于 [ 和 ] 之间,且紧跟在左方括号的后面,它才表示排除该字符集合。如果出现在字符集合之外并位于模式的开头,^ 将匹配字符串的起始位置。

    15430

    正则表达式必知必会 - 常见问题的正则表达式解决方案

    记住,不仅要匹配符合条件的号码,还要排除不符合条件的号码,这也是该正则表达式看起来比较复杂的原因。...; Query OK, 0 rows affected (0.00 sec) mysql> select regexp_count(@s, @r, '') c, regexp_extract(@s,...通过把 4 组数字全都限制在 0 到 255 之间,这个模式准确无误地做到了只匹配有效的 IP 地址,排除无效的 IP 地址。...七、URL         匹配 URL 是一件相当有难度的任务,其复杂性取决于想获得多么精确的匹配结果。URL 匹配模式至少应该匹配到协议(http或https)、主机名、可选的端口号和路径。...但是,正则表达式可用于在对信用卡号码做进一步处理之前,把有输入错误的信用卡号码,比如多输入一位数字或少输入一位数字等情况排除在外。

    34450

    数据库相关知识总结

    如:对 Like 'abs' 和 regexp 'abs'来说,条目 'aaa abs' 将不会在like结果中出现,而会在regexp结果中出现。...如果想要regexp表现出和like一样的特性,可使用定位符 ^ 和 $。 MySQL中的正则表达式匹配(自版本3.23.4后)不区分大小写(即,大写和小写都匹配)。...这是一个重要的区别,WHERE排除的行不包括在分组中。...、排除、排列等) ~ 取消一个词的排序值 * 词尾的通配符 "" 定义一个短语(与单个词的列表不一样,它匹配整个短语以便包含或排除这个短语) 数据插入 插入完整的行 /* customer (id,...注:MYSQL5以后,不允许触发器返回任何结果,因此使用into @变量名,将结果赋值到变量中,用select调用即可 触发器按每个表每个事件每次地定义,每个表每个事件每次只允许一个触发器。

    3.3K10

    oracle查询结果替换指定字符串_oracle按字符截取

    ^ 在正则表达式中一般用于匹配输入字符串的开始位置, 但在中括号中代表反选,也就是排除的字符。...如何查询匹配的最后一组 在不知道具体长度,可以结合length和regexp_replace 函数运算出分隔符的数量或是匹配到的总数。...; --返回结果:5 因为有四个|匹配,所以会分成4+1=5组 --结合上面的方式, 匹配最后一个值的完整SQL如下: SELECT REGEXP_SUBSTR('1|3767|3767|3766|0'...instr('helloworld','wo') from dual; --返回结果:6 即“wo”同时出现,第一个字母“w”出现的位置 注:MySQL中的模糊查询 like 和 Oracle中的...instr() 函数有同样的查询效果; 如下所示: MySQL: select * from tableName where name like '%helloworld%'; Oracle:select

    3.6K20

    MySQL数据查询之单表查询

    =)   2. null 关键字: is null , not null   3.逻辑运算符: 与 and 或 or (多个条件,需要使用逻辑运算符进行连接) #查询格式: select [distinct...where age in(23,32,18); 等价于: select * from person where age =23 or age = 32 or age =18; #使用 in 集合 排除指定值查询...person where name like '____'; #查询 name 名称 的第二个字符是 'l'的人 select * from person where name like '_l%'; #排除名字带...你需要强制让MySQL按中文来排序 聚合查询 聚合: 将分散的聚集到一起....聚合函数: 对列进行操作,返回的结果是一个单一的值,除了 COUNT 以外,都会忽略空值 COUNT:统计指定列不为NULL的记录行数; SUM:计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果

    6.3K30

    数据库SQL语句大全——最常用的SQL语句

    ,否则所有行都将被检索出来 限制检索结果: SELECT pname FROM product LIMIT 5,5 limit5,5指示mysql返回从行5开始的5行记录 排序检索数据: 排序数据 SELECT...'韩版' ORDER BY pname 使用正则表达式需要用REGEXP关键字,并在REGEXP后面跟上正则表达式内容 SELECT pname FROM product WHERE pname REGEXP...它表示匹配任意一个字符 Mysql中的正则表达式不区分大小写,如果要区分大小写可以使用BINARY SELECT pname FROM product WHERE pname REGEXP BINARY...这是一个重 要的区别,WHERE排除的行不包括在分组中。这可能会改变计 算值,从而影响HAVING子句中基于这些值过滤掉的分组。...SELECT语句的执行顺序 SELECT 要返回的列或表达式 是 FROM 从中检索数据的表 仅在从表选择数据使用 WHERE 行级过滤 否 GROUP BY 分组说明 仅在按组计算聚集使用 HAVING

    3K30

    Mysql 必知必会(一)

    文章案例所需的SQL文件,点击下载 使用MySQL 进入mysql安装目录下的bin目录: 连接Mysqlmysql -uroot -p123456; 显示Mysql下的所有数据库:show databases...MySQL在执行匹配默认不区分大小写,所 以fuses与Fuses匹配。...select avg(distinct prod_price) avg_price from products where vend_id = 1003; **取别名:**在指定别名以包含某个聚集函数的结果...GROUP BY子句指示MySQL分组数据,然后对每个组而不是 整个结果集进行聚集。 在具体使用GROUP BY子句前,需要知道一些重要的规定。 GROUP BY子句可以包含任意数目的列。...这是一个重 要的区别,WHERE排除的行不包括在分组中。这可能会改变计 算值,从而影响HAVING子句中基于这些值过滤掉的分组。

    2.6K20
    领券