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 ;

时间: 2024-10-13 21:52:42

mysql update语句,修改字段,,或者是批量修改字段的相关文章

MySql 同一个列中的内容进行批量修改

问题重现: MySql 数据库中,一给列的内容中包括 ".wmv"     需要将 "." 后的wmv格式 换为"flv" 解决办法 update video_info set file_path=substring(file_path,1,length(file_path)-3); 先执行以上SQL进行删除: update video_info set file_path = concat(file_path,'flv'); 再执行这条语句把f

Mysql update语句赋值嵌套与在表列中数据后面增加数据

1.Mysql update语句赋值嵌套select  点击(此处)折叠或打开 update a set col=(select col from a where id='5') where id>5 and id<10; 报错了 ERROR 1093 (HY000): You can't specify target table 'a' for update in FROM clause 经过研究 发现是 mysql 定义update语句不能同时对同一张进行set 赋值操作,也就是说 upd

MySQL UPDATE语句SET多字段,逗号连接和AND连接的区别

参考链接:https://blog.csdn.net/qq_28382071/article/details/79759559 MySQL正确的UPDATE语法如下: 测试表数据和字段格式 执行以下UPDATE语句,会有什么结果? 第三句UPDATE语句报错,其他成功执行 执行结果: 说明: 1和4是正确UPDATE语句,2.3.5.6是使用AND连接的UPDATE. MySQL使用AND连接的语句时,相当于执行了下面的SQL: UPDATE hutz SET age = (1 AND addr

mysql update语句与limit的结合使用

有时候有需要批量更新数据表中从多少行到多少行的某个字段的值 mysql的update语句只支持更新前多少行,不支持从某行到另一行,比如 UPDATE tb_name SET column_name='test' ORDER BY id ASC LIMIT 30; 更新前30行的某个字段内容,没什么问题. UPDATE tb_name SET column_name='test' ORDER BY id ASC LIMIT 20,10; 更新从20行到30行的某个字段的内容,这样会报错. 解决办法

MySQL update 语句与标准SQL不同的地方

[SQL标准中有一个叫同时执行的概念] 同时执行指的是在同一个子句中的各个部分的执行时机是不区分先后的,如下面的SQL语句 select abs(-1),abs(2); +---------+--------+ | abs(-1) | abs(2) | +---------+--------+ | 1 | 2 | +---------+--------+ 1 row in set (0.01 sec) 按SQL标准的说法 abs(-1) 与 abs(2) 这两个函数是"同时执行"的!

mysql update语句的一个知识点说明

当执行update语句时,如果受影响的行数是0,返回的也是true. $conn = new mysqli(); $sql = "update ..."; $query = $conn->query($sql); var_dump($query); //此时,如果update   sql语句执行成功,但是影响行数为0,$query是true. 影响行数: $conn->affected_rows; // 如果执行sql语句出错,返回-1,

批量修改字段中不规则的部分

需求:mysql数据表中有img字段,其中包括下面三条数据,我想把图片名保留下来,前面的部分改成自己想要的部分,即下面三条数据,其实这个字段的数据远不止三条,这里只是个例子. http://s29.9956.cn/product/40/ac/40ace1babb133e1ea17f09932dd2e508.jpg http://s29.9956.cn/product/cf/f8/cff815dabb3555cf1df47388baa32b84.jpg http://s29.9956.cn/pro

mysql执行update语句时报错:Data truncation: Truncated incorrect DOUBLE value: &#39;null&#39;

出现这个问题的原因网上有说是update的参数连接符要用,而不是and,但是我遇到的不是这个. 我出现问题的原因是,在update语句的where中varchar类型的字段我直接用了数字类型 update address set province = '北京' where userId = 250; userId是varchar类型的,报错Data truncation: Truncated incorrect DOUBLE value: 'null' 改成这样就可以了 update addre

MySQL UPDATE 查询

MySQL UPDATE 查询 如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作.. 语法 以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法: UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause] 你可以同时更新一个或多个字段. 你可以在 WHERE 子句中指定任何条件. 你可以在一个单独表中同时更新数据. 当你需要更新数据表中指定行