mysql正则表达式

厚脸皮的tomsu 发布于 2009/06/17 17:02
阅读 1K+
收藏 0

msyql中,我想使用[\\]\\?替换掉一个url中的\?,我的写法是:replace('http://www.google.cn\?a=b','\\?','[\\]\\?');

提示:

ERROR 1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('http://www.google.cn\?a=b','\\?','[\\]\\?')' at line 1

不知道是什么原因哦??

加载中
0
红薯
红薯

用MySQL的函数处理? 拜托了,不要什么事情都交给数据库去做,这种问题应该在程序里解决了再传给 MySQL 嘛

说实在的,我也没试过 MySQL 里的正则表达式

0
厚脸皮的tomsu
厚脸皮的tomsu

引用来自“红薯”的帖子

 

用MySQL的函数处理? 拜托了,不要什么事情都交给数据库去做,这种问题应该在程序里解决了再传给 MySQL 嘛

说实在的,我也没试过 MySQL 里的正则表达式

 老大,如果可以在程序里解决,就不用问你啦!!!!这个东西要写到mysql的存储过程中,所以才变的复杂的,没办法啊!!

0
红薯
红薯

那应该去找点正则表达式的文章,而不是看MySQL的吧

0
JavaGG
JavaGG

mysql的正则不太清楚,但java的正则是这样的,,如果你想替换一个\号,那么是  repalce("\\\\","/")这样是把一个\替成一个/号

0
厚脸皮的tomsu
厚脸皮的tomsu

多谢各位,问题已经解决了。

mysql5以上是支持正则表达式的,正确的写法应该是:replace('http://www.google.cn\\?a=b','\\?','[\\]\\?');

因为mysql中DB有一个转义,然后正则表达式又有一个转义,所以应该是两个“/”,才能真正转义一个符号。

0
aforbe
aforbe
这个好像只说明了replace。并未表示“mysql5以上是支持正则的啊”。 mysql的replace一直没用过正则功能。也没成功过。倒是select可以正则。你这第二个参数"\\?" 就是串,不是正则
返回顶部
顶部