MySQL 中替换字符串函数 INSERT(s1,x,len,s2) 返回字符串。 s1为字符串,子字符串起始于 x 位置,并且用 len 个字符长的字符串代替 s2。
若 x 超过字符串长度,则返回值为原始字符串。假如 len 的长度大于其他字符串的长度,则从位置 x 开始替换。若任何一个参数为 NULL,则返回值为 NULL。还有另外一种字符串替换函REPLACE函数。
使用 INSERT 函数进行字符串替换操作,输入的 SQL 语句和执行结果如下所示。
mysql> SELECT INSERT('Football',2,4,'Play') AS col1, -> INSERT('Football',-1,4,'Play') AS col2, -> INSERT('Football',3,20,'Play') AS col3, -> INSERT('Football',2,20,'Playdwdefefe') AS col4, -> INSERT('Football',2,0,'Playdwdefefe') AS col5, -> INSERT('Football',2,10,'Playdwdefefe') AS col6, -> INSERT('Football',2,4,'Playdwdefefe') AS col7; +----------+----------+--------+---------------+----------------------+---------------+------------------+ | col1 | col2 | col3 | col4 | col5 | col6 | col7 | +----------+----------+--------+---------------+----------------------+---------------+------------------+ | FPlayall | Football | FoPlay | FPlaydwdefefe | FPlaydwdefefeootball | FPlaydwdefefe | FPlaydwdefefeall | +----------+----------+--------+---------------+----------------------+---------------+------------------+ 1 row in set (0.00 sec)
由执行结果可知:
第一个函数 INSERT('Football',2,4,'Play') 将“Football”从第 2 个字符开始长度为 4 的字符串替换为 Play,结果为“FPlayall”;
第二个函数 ('Football',-1,4,'Play') 中的起始位置 -1 超出了字符串长度,直接返回原字符串;
第三个函数 INSERT('Football',3,20,'Play') 替换长度超出了原字符串长度,则从第 3 个字符开始,截取后面所有的字符,并替换为指定字符 Play,结果为“FoPlay”。
第四个函数INSERT('Football',2,20,'Playdwdefefe') len长度和替换字符串都比原字符串长时,一直替换
第五个函数INSERT('Football',2,0,'Playdwdefefe') len长度为0时,在开始位置插入替换字符串
第六个函数INSERT('Football',2,10,'Playdwdefefe')len长度比原字符串长,比替换函数短时,会一直替换完替换函数
第七个函数INSERT('Football',2,4,'Playdwdefefe')len长度比原字符串和替换字符串短时,在插入替换字符串后连接len长度后剩下原字符串。