mysql中replace替换字符串返回结果空或0

为什么执行一个mysql语句,用replace函数替换字符,但是返回的结果为0?这条sql语句是这样写的:

 代码如下 复制代码

UPDATE v9_news_data set content=REPLACE(`content`,'<p>[NextPage]</p>','[page]')
and pagin=2 where INSTR(`content`,'<p>[NextPage]</p>') > 0;

结果执行完后,想要的替换效果没有实现,得到结果为0.这是怎么回事。

后来恢复数据库,去掉and pagin=2这句再试就ok了,难道REPLACE函数在update语句中不能同时updata多个字段吗?那就只好分布进行了。

mysql REPALCE函数正确写法是:

 代码如下 复制代码

UPDATE v9_news_data set content=REPLACE(`content`,'<p>[NextPage]</p>','[page]') where INSTR(`content`,'<p>[NextPage]</p>') > 0;

一次最好只REPLACE一个字段,不知道是不是update的原因,或者是content这个字段字符太长了,

 代码如下 复制代码

INSTR(`content`,'<p>[NextPage]</p>') > 0

后面这句话instr函数判断是否存在这个字符串,也有必要加上以免出错。

时间: 2024-12-31 08:45:55

mysql中replace替换字符串返回结果空或0的相关文章

java 正则表达式-这条java中的替换字符串的正则表达式是什么意思?能不能详细解释一下

问题描述 这条java中的替换字符串的正则表达式是什么意思?能不能详细解释一下 replaceAll("([^u4e00-u9fa5]{1})([^u4e00-u9fa5]{1})", "$2") 解决方案 在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容.许多程序设计语言都支持利用正则表达式进行字符串操作.例如,在Perl中就内建了一个功能

MySQL中replace into语句的用法详解_Mysql

在向表中插入数据的时候,经常遇到这样的情况: 1.首先判断数据是否存在: 2.如果不存在,则插入: 3.如果存在,则更新.   在 SQL Server 中可以这样写: 复制代码 代码如下: if not exists (select 1 from table where id = 1) insert into table(id, update_time) values(1, getdate()) else update table set update_time = getdate() whe

mysql中replace、regexp正则表达式替换用法

mysql字段值替换具体做法如下:  代码如下 复制代码 update `table_hospital` set service=replace(service,"<a%</font></a>",'') <br type="_moz"> 可以限制ID,范围,具体内容自己发挥想象! mysql数据库中replace.regexp的用法,主要是通过sql语句实现数据的替换. mysql replace用法 1.replace i

mysql 中replace()批量替换指定字符语句

将cdb_pms表subject字段中的Welcom to替换成 欢迎光临  代码如下 复制代码 UPDATE `cdb_pms` SET `subject` = REPLACE(`subject`, 'Welcome to', '欢迎光临') WHERE INSTR(`subject`,'Welcome to') > 0 替换cdb_posts表的message字段,将"viewthread.php?tid=3989"替换成"viewthread.php?tid=16

mySQL中replace的用法_Mysql

mysql replace实例说明: UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); REPLACE(str,from_str,to_str) 在字符串 str 中所有出现的字符串 from_str 均被 to_str替换,然后返回这个字符串 这个函数用来批量替换数据中的非法关键字是很有用的!如下例子: 例1:UPDATE BBSTopic SET tcontents = replace(replace(tcontents,'共产党','') ,'找死'

MySql中instr函数字符串位置查找

用法: INSTR (ori_str, sub_str) MySQL INSTR() 查找一个字符串在另一个字符串中的位置,返回首次出现位置的索引值. 举例: 1.  代码如下 复制代码 mysql> select instr('www.111cn.net','.'); +----------+ | instr('www.111cn.net','.') | +----------+ |                          4 | +----------+ 1 row in set

Mysql中实现提取字符串中的数字的自定义函数分享_Mysql

因需要在mysql的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的mysql函数,可以有效的从字符串中提取出数字. 该mysql提取出字符串中的数字函数如下: 复制代码 代码如下: CREATE FUNCTION GetNum (Varstring varchar(50)) RETURNS varchar(30) BEGIN DECLARE v_length INT DEFAULT 0; DECLARE v_Tmp varchar(50) default ''; se

MySQL中REPLACE INTO和INSERT INTO的区别分析_Mysql

注意,除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义.该语句会与INSERT相同,因为没有索引被用于确定是否新行复制了其它的行. [separator] 所有列的值均取自在REPLACE语句中被指定的值.所有缺失的列被设置为各自的默认值,这和INSERT一样.您不能从当前行中引用值,也不能在新行中使用值.如果您使用一个例如"SET col_name = col_name + 1"的赋值,则对位于右侧的列名称的引用会被作为DEFAULT(c

MSSQL批量替换语句 在SQL SERVER中批量替换字符串的方法

方法一:(这种是最常用的,因为很多大段的内容都使用text ntext等数据类型,而我们通常也是替换里面的内容) varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace 替换 text ntext 数据类型字段的语句 复制代码 代码如下:update 表名 set 字段名=replace(cast(与前面一样的字段名 as varchar(8000)) ,'原本内容','想要替换成什么') 方法二:(替换其他数据类