update mysql语句(mysql执行update语句让某个字段变成null该怎么办)
本文目录
- mysql执行update语句让某个字段变成null该怎么办
- mysql中的update语句
- mysql 触发器 if 语句update怎么操作
- My**L的更新语句update中可以用子查询吗
- 为什么My**L update语句有时候没对数据产生影响
- 求一条mysql 语句,update 的语句
- mysql 数据库 更新字段语句
mysql执行update语句让某个字段变成null该怎么办
语法如下:
update table set col_name=null where id=1
数据表 table的字段 col_name 需要支持为NULL才能正常执行。
延展阅读:
Update是一个数据库**L语法用语,用途是更新表中原有数据,单独使用时使用where匹配字段。
用途:更新表中原有数据,
单独使用,使用where匹配字段,
set后面,更新字段值,既可以一次一项,也可以一次多项。
mysql中的update语句
sql:update items set price = case id when 1 then 11.0 when 2 then 12.0 when 3 then 13.0 end, lowest = case id when 1 then ’jd’ when 2 then ’tmall’ when 3 then ’suning’ end where id in (1, 2, 3).
php的话,可以用数组来拼出类似上面这样的长sql。
mysql 触发器 if 语句update怎么操作
有时候在修改某一个字段的值得时候我们需要根据当前字段的不同状态进行不同处理,
比如对于用户表,我们需要记录下来用户被访问的次数,但访问次数的初始值为 null。
如下:
CREATE TABLE `test` (
`id` int(11) NULL DEFAULT NULL ,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`visit_num` int(11) NULL DEFAULT NULL
)
我们就可以使用如下的 sql 进行判断和修改
UPDATE test set visit_age=if(visit_num is null,1,visit_num+1) where id=1。
My**L的更新语句update中可以用子查询吗
My**L的更新语句update中可以用子查询,My**Ll的功能问题,mysql不支持对同一个表查询后做修改(update、delete)操作 。
例如:update score set 姓名=’王五’ where 总分=(select score from(select min(总分) as score from score) as a);制定个新表名就可以了。
My**L是一个关系型数据库管理系统,由瑞典My**L AB 公司开发,目前属于 Oracle 旗下产品。My**L 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,My**L是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
My**L所使用的 **L 语言是用于访问数据库的最常用标准化语言。My**L 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 My**L 作为网站数据库。
My**L 自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,My**L提供的功能已经绰绰有余,而且由于 My**L是开放源码软件,因此可以大大降低总体拥有成本。
为什么My**L update语句有时候没对数据产生影响
数据未能更新,可能有如下几个原因:
1)数据库引擎未能找到被筛选的记录;
例如下列语句
update 定价表 set 单价=单价*1.1 where
商品类别=’电器’;
假如定价表里根本就没有商品类别为电器的商品,那么这个语句即使成功运行,数据也不会有任何改变。
2)更新前后的字段值没有变化;
例如下列语句
update 学生表 set 姓名=’张三’ where 学号=’091’;
假如,学号为091的学生,他的名字原本就是张三,你再将他的姓名更新为张三,语句即使成功运行,数据也不会有任何改变;
3)更新查询根本就没有被实际执行。
求一条mysql 语句,update 的语句
如表名为tb2
第一步先去除所有空格
update tb2 set value=REPLACE(value,’ ’,’’);
第二步去除所有已有的’.’
update tb2 set value=REPLACE(value,’.’,’’);
1位字母的:
update tb2 set value=CONCAT(value,’.’) where length(value)=1 and value!=’.’;
2位字母的:
update tb2 set value=CONCAT(SUBSTRING(value,1,1),’.’,SUBSTRING(value,2,1),’.’) where length(value)=2 and value not like ’%.%’;
3位字母的:
update tb2 set value=CONCAT(SUBSTRING(value,1,1),’.’,SUBSTRING(value,2,1),’.’,SUBSTRING(value,3,1),’.’) where length(value)=3 and value not like ’%.%’;
4位字母的:
..................
以些类推。
如果由程序控制的话,可以从以下规律着手:
变量t为字母位数,m为累加变量为1到t,先去除空格和已有’.’后的更新语句为:
update tb2
set
value=CONCAT(SUBSTRING(value,1,1),’.’,SUBSTRING(value,2,1),’.’,................,SUBSTRING(value,t,1),’.’)
where length(value)=t and value not like ’%.%’;
即:value的值为CONCAT()里面重复SUBSTRING(value,m,1),’.’,重复的次数由字母位数t决定,第一次m为1,第二次m为2,。。。。第t次m=t,然后结束CONCAT()。条件为 length(value)=t且value里本身没有’.’。
mysql 数据库 更新字段语句
Update A,B Set A.size=B.size Where A.chapterid=B.chapterid;
或
Update A Inner Join B On A.chapterid=B.chapterid Set A.size=B.size;