你的位置:首页 > 数据库

[数据库]mysql update语句,修改字段,,或者是批量修改字段


更新一个字段,在它的后面加一个字符串,不查询数据库得到这个字段值 怎么添加??例如:我的test表,有个user字段,我现在想在它后面加了另一个用户的名字我在mysql数据库这样写UPDATE test SET user= user+ ',phpchina' WHERE id= '2';这样是不对的,mysql数据库把它当成数字相加了,user字段值变成0了。应该:UPDATE test SET user= CONCAT(user,',phpchina') WHERE id= '2';

 

MySQL批量替换指定字段字符串语句

UPDATE 数据表名 SET 字段名 = replace(字段名, '要替换的字符串', '替换为') WHERE 设定条件;

例子

 代码如下复制代码

UPDATE `cdb_name` SET `field_name` = replace (`field_name`,'from_str','to_str')

说明:

cdb_name —— 该字符或字符串所在表的名字
field_name —— 该字符或字符串所在字段的字段名
from_str —— 需要替换的字符串
to_str —— 替换成的字符串

例如:

进入phpmyadmin,打开要操作的数据库,点击上方的sql,执行以下sql语句:(这里我使用的Discuz做演示)

 代码如下复制代码

UPDATE `pre_forum_post` SET `author` = replace( `author` , '祥磊部落', '祥磊' )

意思是把用户名“祥磊部落”修改为“祥磊”,其中pre_要修改为您自己数据库的表前缀。

 代码如下复制代码

UPDATE phpcms_article SET title=REPLACE(title,'[2009]','〔2009〕');
UPDATE phpcms_article SET content=REPLACE(content,'[2009]','〔2009〕');

语句中还可以加入替换条件,如只替换限定ID小于200的内容:

 代码如下复制代码

UPDATE wp_posts SET post_content = replace(post_content, '搜索引擎优化', '搜索引擎营销') WHERE ID < 200;

后面附一个高级点的

 代码如下复制代码

UPDATE `cdb_settings` SET `value` = '' WHERE CONVERT( `variable` USING utf8 ) ='adminipaccess' LIMIT 1 ;