建站软件 优化软件 编程软件 网页辅助 站群程序 网站程序 图像处理 资源教程 字体下载 推荐软件


您的位置:首页 > MYSQL学习 > mysql里面怎么使用正则表达式replace、regexp

mysql里面怎么使用正则表达式replace、regexp

时间:2015-04-28 10:56:50  来源:免费模板网 作者:风雪 阅读次数 tagsmysql正则

  在提取数据的时候,在程序里面可以处理字符串,在mysql里面也是可以处理匹配字符串的,在javascript里面也是一样,都可以进行匹配字符串,下面介绍怎么在mysql使用正则表达式

  可能很多朋友在使用replace时只是简单的替换字符了,replace不但可以替换字符还可以直接在里面使用正则表达式来替换了,下面我们一起来看看具体一些关于replace正则替换字符的用法吧.

mysql字段值替换具体做法如下:

update `table_hospital` set service=replace(service,"<a%</font></a>",'')<br type="_moz">

可以限制ID,范围,具体内容自己发挥想象,mysql数据库中replace、regexp的用法,主要是通过sql语句实现数据的替换.

mysql replace用法 

1.replace into,代码如下:

replace into table (id,name) values('1′,'aa'),('2′,'bb') 

此语句的作用是向表table中插入两条记录,如果主键id为1或2不存在,就相当于如下代码:

insert into table (id,name) values('1′,'aa'),('2′,'bb') 

如果存在相同的值则不会插入数据.

2.replace(object,search,replace) 把object中出现search的全部替换为replace,代码如下:

select replace('www.phpfensi.com','w','Ww')—>WwWwWw.phpfensi.com 

例:把表table中的name字段中的aa替换为bb 

update table set name=replace(name,'aa','bb') 

由MySQL提供的模式匹配的其它类型是使用扩展正则表达式,当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词).

扩展正则表达式的一些字符是:

· ‘.'匹配任何单个的字符。 

· 字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的范围,使用一个“-”。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。 

· “ * ”匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配任何数量的数字,而“.*”匹配任何数量的任何字符。

如果REGEXP模式与被测试值的任何地方匹配,模式就匹配(这不同于LIKE模式匹配,只有与整个值匹配,模式才匹配).

为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”.

为了说明扩展正则表达式如何工作,下面使用REGEXP重写上面所示的LIKE查询,为了找出以“b”开头的名字,使用“^”匹配名字的开始,代码如下:

  1. mysql> SELECT * FROM pet WHERE name REGEXP ‘^b';  
  2. +——–+——–+———+——+————+————+  
  3. | name| owner | species | sex | birth | death |  
  4. +——–+——–+———+——+————+————+  
  5. | Buffy | Harold | dog| f | 1989-05-13 | NULL|  
  6. | Bowser | Diane | dog| m | 1989-08-31 | 1995-07-29 |  
  7. +——–+——–+———+——+————+————+   

如果你想强制使REGEXP比较区分大小写,使用BINARY关键字使其中一个字符串变为二进制字符串,该查询只匹配名称首字母的小写‘b',代码如下:

mysql> SELECT * FROM pet WHERE name REGEXP BINARY ‘^b'; 

为了找出以“fy”结尾的名字,使用“$”匹配名字的结尾:

  1. mysql> SELECT * FROM pet WHERE name REGEXP ‘fy$';  
  2. +——–+——–+———+——+————+——-+  
  3. | name| owner | species | sex | birth | death |  
  4. +——–+——–+———+——+————+——-+  
  5. | Fluffy | Harold | cat| f | 1993-02-04 | NULL |  
  6. | Buffy | Harold | dog| f | 1989-05-13 | NULL |  
  7. +——–+——–+———+——+————+——-+  

为了找出包含一个“w”的名字,使用以下查询:

  1. mysql> SELECT * FROM pet WHERE name REGEXP ‘w';  
  2. +———-+——-+———+——+————+————+  
  3. | name| owner | species | sex | birth | death |  
  4. +———-+——-+———+——+————+————+  
  5. | Claws | Gwen | cat| m | 1994-03-17 | NULL|  
  6. | Bowser| Diane | dog| m | 1989-08-31 | 1995-07-29 |  
  7. | Whistler | Gwen |

本文地址:https://www.freemoban.com/mysql/2015/0428/1566.html

猜你喜欢
栏目推荐
模板推荐

Copyright:www.freemoban.com 免费模板网 All Rights Reserved 网站备案:辽ICP备19014872号-2   辽公网安备 21010602000376号  辽公网安备:42900402000182号

免责声明:本站部分资源来自互联网收集,版权归原创者所有,如果侵犯了你的权益,我们会及时删除侵权内容,联系QQ:1615187561 谢谢合作!