【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
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
不知道是什么原因哦??
用MySQL的函数处理? 拜托了,不要什么事情都交给数据库去做,这种问题应该在程序里解决了再传给 MySQL 嘛
说实在的,我也没试过 MySQL 里的正则表达式
引用来自“红薯”的帖子
用MySQL的函数处理? 拜托了,不要什么事情都交给数据库去做,这种问题应该在程序里解决了再传给 MySQL 嘛
说实在的,我也没试过 MySQL 里的正则表达式
老大,如果可以在程序里解决,就不用问你啦!!!!这个东西要写到mysql的存储过程中,所以才变的复杂的,没办法啊!!
那应该去找点正则表达式的文章,而不是看MySQL的吧
mysql的正则不太清楚,但java的正则是这样的,,如果你想替换一个\号,那么是 repalce("\\\\","/")这样是把一个\替成一个/号
多谢各位,问题已经解决了。
mysql5以上是支持正则表达式的,正确的写法应该是:replace('http://www.google.cn\\?a=b','\\?','[\\]\\?');
因为mysql中DB有一个转义,然后正则表达式又有一个转义,所以应该是两个“/”,才能真正转义一个符号。