MySQL replace通配符替换

MySQL replace通配符替换,第1张

mssql的replace支持通配符,而mysql想要实现该功能,还需费一翻手脚。

请看:

SELECT CONCAT('<A href="',

SUBSTRING_INDEX(

SUBSTRING_INDEX('xyz<A href="/v3/uploadfile/UploadFiles_5625/201107/2011070122330714.jpg" target=_blank>mmm </A>xyzxyz<A href="/v3/uploadfile/UploadFiles_5625/201107/2011070122330713.jpg" target=_blank></A>xyzxyz<A href="/v3/uploadfile/UploadFiles_5625/201107/2011070122330715.jpg" target=_blank>xxx </A>xyz'

,'<A href="',-3)

,'"',1)

,'" target=_blank></A>')

这句代码中出现SUBSTRING_INDEX,其函数原型为SUBSTRING_INDEX(str,delim,num),其返回在str中第num个delim之前或之后的字符串,若num为正则为向后取,为负则为向后取。

如SUBSTRING_INDEX(‘abcdefg’,'d',1)返回字符串efg,SUBSTRING_INDEX(‘abcdefg’,'d',-1)返回abc。

开头所示代码则表示,在字符串中寻找第3个'<A href="'之后的字符,而后取该返回字符串第一个'"'之前的字符串,则最后返回/v3/uploadfile/UploadFiles_5625/201107/2011070122330715.jpg。

本次所想替换的是文本代码中无效的链接代码,寻到不同后,再用concat连接起来,update即可。如例:

UPDATE phpcms_c_tougao

SET content=REPLACE(content,CONCAT('<A href="', SUBSTRING_INDEX( SUBSTRING_INDEX(content,'<A href="',-1) ,'"',1) ,'" target=_blank></A>'),'')

WHERE 1

(完毕)

set

simtime=replace(time,'-','')即可

mysql的内置函数都是全局函数,没有对象的概念

,所以不能使用set

simtime=time.replace('-','')类似的语法。

insert是插入数据

update是更新数据

择列表

选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。

1、选择所有列

例如,下面语句显示testtable表中所有列的数据:

SELECT * FROM testtable

2、选择部分列并指定它们的显示次序

查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。

3、更改列标题

在选择列表中,可重新指定列标题。定义格式为:

列标题=列名 列名 列标题

如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: SELECT 昵称=nickname,电子邮件=email FROM testtable。

4、删除重复行

SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/6167275.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-17
下一篇2023-03-17

发表评论

登录后才能评论

评论列表(0条)

    保存