my sql如何一行更新多个数据?
SQL 用update语句一次更新多个字段语句格式如下: UPDATE 表名 SET 列名1=值,列名2=值2,... [WHERE 条件] 多个字段时可以用逗号隔开,每个 字段名=值 就是给字段赋值,其后的WHERE 条件语句可以用也可以不用
mysql如何把单条update语句批量执行?
when和then语句就可以实现批量更新语句
UPDATE table_own SET
cloumn_own= CASE id
WHEN 1 THEN 'a'
WHEN 2 THEN 'b'
WHEN 3 THEN 'c'
END
图片来源:网络
WHERE id IN (1,2,3);
这个批量更新语句的意思就是说,更新cloumn_own字段,如果id=1 则cloumn_own=a,如果id=2 则cloumn_own=b,如果id=3 则cloumn_own=c
记住,其实end 后面的where语句是不可必需的,但最好是带上
如果不加where条件,会使整个表的数据更新,不满足条件的对应的值会设置成默认值(导致你执行的前面n-1次都是无效,保留的是第n次)
带上where条件的话,就不会出现这种情况了
mysql怎么update一个值为null?
update tblname set 字段=null where condition; 直接用常量Null。
这个是有条件限制的。可以先select *from table_name查看一下表中想设置的那个列的属性是否设置了NOT NULL,如果设置了NOT NULL,那么是不能简单的修改为NULL的。必须先修改这个列的属性,alter table table_name set (列名) varchar(100) default null现在就是默认为空,如果查询出来是允许为空,直接update 表名 set 列名=null where 条件即可。
用mysql取另一张表的数据做update可以吗?
在做update的时候,经常会遇到想把a表的值,通过公共字段连接修改成b表的值
这时候在oracle中,可以使用
update <table1_name> tab1set <column_name> = (select <column_name> from <table2_name> tab2 where tab1.**=tab2.**);
但是相同的操作在mysql中操作,就会报错,错误大概:
[Err] 1093 – You can’t specify target table ‘tab1’ for update in FROM clause
原因是对同一张表进行了读写操作,那么在mysql可以用join的方式去做update:
update <table1_name>,<table2_name>
set <table1_name>.** = <table2_name>.**
where <table1_name>.** = <table2_name>.**; —–公共字段