mysql替换字符串_MySQLreplace函数替换字符串语句的⽤法
(mysql字符串替换)
MySQL replace函数我们经常⽤到,下⾯就为您详细介绍MySQL replace函数的⽤法,希望对您学习MySQL replace函数⽅⾯能有所启迪。
最近在研究CMS,在数据转换的时候需要⽤到mysql的MySQL replace函数,这⾥简单介绍⼀下。
⽐如你要将表 tb1⾥⾯的 f1字段的abc替换为def
UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def');
REPLACE(str,from_str,to_str)
在字符串 str 中所有出现的字符串 from_str 均被 to_str替换,然后返回这个字符串:
mysql> SELECT REPLACE('sql', 'w', 'Ww');
-> 'sql'
这个函数是多字节安全的。
代码如下:
UPDATE `dede_addonarticle` SET body = REPLACE ( body, '', '' );
UPDATE `dede_addonarticle` SET body = REPLACE ( body, '', '' );
UPDATE `dede_addonarticle` SET body = REPLACE ( body, '
', '' );
UPDATE `dede_archives` SET title= REPLACE ( title, '⼤洋新闻 - ', '' );
UPDATE `dede_addonarticle` SET body = REPLACE ( body, '../../../../../../', 'sc.jb51/meal/' );
mysql replace⽤法1.replace intoreplace into table (id,name) values('1','aa'),('2','bb')
此语句的作⽤是向表table中插⼊两条记录。
3','w','Ww')--->WwW wWw.163
例:把表table中的name字段中的 aa替换为bbupdate table set name=replace(name,'aa','bb')
下⾯是其它⽹友的⽂章,可以参考下:今天⽆意之中发现了replace的⽤法,并且在项⽬中还有相关的应⽤,应⽤到项⽬中果然是屡试不爽。朋友们就来看下关于repace的详细解释吧。
REPLACE的运⾏与INSERT很相像。只有⼀点除外,如果表中的⼀个旧记录与⼀个⽤于PRIMARY KEY或⼀个UNIQUE索引的新记录具有相同的值,则在新记录被插⼊之前,旧记录被删除。请参见13.2.4节,“INSERT语法”。
注意,除⾮表有⼀个PRIMARY KEY或UNIQUE索引,否则,使⽤⼀个REPLACE语句没有意义。该语句会与INSERT相同,因为没有索引被⽤于确定是否新⾏复制了其它的⾏。
所有列的值均取⾃在REPLACE语句中被指定的值。所有缺失的列被设置为各⾃的默认值,这和INSERT⼀样。您不能从当前⾏中引⽤值,也不能在新⾏中使⽤值。如果您使⽤⼀个例如“SET col_name = col_name + 1”的赋值,则对位于右侧的列名称的引⽤会被作为DEFAULT(col_name)处理。因此,该赋值相当于SET col_name = DEFAULT(col_name) + 1。
为了能够使⽤REPLACE,您必须同时拥有表的INSERT和DELETE权限。
REPLACE语句会返回⼀个数,来指⽰受影响的⾏的数⽬。该数是被删除和被插⼊的⾏数的和。如果对
于⼀个单⾏REPLACE该数为1,则⼀⾏被插⼊,同时没有⾏被删除。如果该数⼤于1,则在新⾏被插⼊前,有⼀个或多个旧⾏被删除。如果表包含多个唯⼀索引,并且新⾏复制了在不同的唯⼀索引中的不同旧⾏的值,则有可能是⼀个单⼀⾏替换了多个旧⾏。
受影响的⾏数可以容易地确定是否REPLACE只添加了⼀⾏,或者是否REPLACE也替换了其它⾏:检查该数是否为1(添加)或更⼤(替换)。如果您正在使⽤C API,则可以使⽤mysql_affected_rows()函数获得受影响的⾏数。
⽬前,您不能在⼀个⼦查询中,向⼀个表中更换,同时从同⼀个表中选择。
以下是所⽤算法的更详细的说明(该算法也⽤于LOAD DATA…REPLACE):
1. 尝试把新⾏插⼊到表中简单的mysql语句
2. 当因为对于主键或唯⼀关键字出现重复关键字错误⽽造成插⼊失败时:
a. 从表中删除含有重复关键字值的冲突⾏
b. 再次尝试把新⾏插⼊到表中
使⽤格式:
代码如下:
REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_name,...)]
VALUES ({expr | DEFAULT},…),(…),…
或:
REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name
SET col_name={expr | DEFAULT}, …
或:
REPLACE [LOW_PRIORITY | DELAYED]
[INTO] tbl_name [(col_name,...)]
SELECT …

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。