mysql中的update语句怎么写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中的update语句怎么写相关的知识,希望对你有一定的参考价值。

SQL UPDATE 命令

如果我们需要修改或更新 mysql 中的数据,我们可以使用 SQL UPDATE 命令来操作。

具体语法参考:

from 树懒学堂 - 一站式数据知识平台

注意:

    你可以同时更新一个或多个字段。

    你可以在 WHERE 子句中指定任何条件。

    你可以在一个单独表中同时更新数据。

    当你需要更新数据表中指定行的数据时 WHERE 子句是非常有用的。

参考技术A 首先,单表的UPDATE语句:
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
SET col_name1=expr1 [, col_name2=expr2 ...]
[WHERE where_definition]
[ORDER BY ...]
[LIMIT row_count]
其次,多表的UPDATE语句:
UPDATE [LOW_PRIORITY] [IGNORE] table_references
SET col_name1=expr1 [, col_name2=expr2 ...]
[WHERE where_definition]
update语句作为mysql更新语句,set后面紧接着的是需要更新的列明和想要更新的值where后面限定更新的条件,order by根据某一个字段排序后,将会由排序后由上到下逐条更新,limit将会限制更新的条数.
参考技术B update 表名 set 字段名=字段值 where 条件
如 update a set name='xiaoming' where name='';
如果是多表查询
update 表1 a inner join 表2 b on ab表的关联 set a.字段=b.字段
如 update table1 a inner join table2 b on a.id=b.id set a.name=b.name
就是在table1表和table2表id相同时 把table2的name值赋给table1的name本回答被提问者采纳
参考技术C update tablename set column=123,column2=234 where 条件

MYSQL查询语句问题 查询当月和上一月的查询语句怎么写?

select * from shipmentlist,shipmentscrib where (shipmentlist.shipmentlistno=shipmentscrib.shipmentlistno) and (year(shipmentlist.shipmentdate)=year(now())) and (month(shipmentlist.shipmentdate)=month(now()) or month(shipmentlist.shipmentdate)=month(now())-1 ) ORDER BY shipmentdate DESC

参考技术A select
*
from
shipmentlist,shipmentscrib
where
(shipmentlist.shipmentlistno=shipmentscrib.shipmentlistno)
and (year(shipmentlist.shipmentdate)=year(now()))
and (month(shipmentlist.shipmentdate)=month(now())
or month(shipmentlist.shipmentdate)=month(now())-1 )
ORDER BY shipmentdate DESC

格式化了一下你的SQL,分析一下。
假如今天是 2012年1月1日。
那么上面的条件。
将变为
year = 2012 and month = 1 OR month = 0

其实,对于 查询 当月和上一月
相当于
shipmentlist.shipmentdate >= 上月的1号
AND shipmentlist.shipmentdate < 下月的1号

LAST_DAY(NOW()) 可以获取 本月的最后一天.

DATE_ADD( LAST_DAY(NOW()) INTERVAL 1 DAY ) 可以获取下月第一天。

DATE_SUB ( DATE_ADD( LAST_DAY(NOW()) INTERVAL 1 DAY ) INTERVAL 2 MONTH ) 可以获取上月的1号
(也就是用 下月的1号 减少2个月,从而获取 上月的1号)

最后 SQL 修改为:

select
*
from
shipmentlist,shipmentscrib
where
(shipmentlist.shipmentlistno=shipmentscrib.shipmentlistno)
and shipmentlist.shipmentdate >= DATE_SUB ( DATE_ADD( LAST_DAY(NOW()) INTERVAL 1 DAY ) INTERVAL 2 MONTH )
AND shipmentlist.shipmentdate < DATE_ADD( LAST_DAY(NOW()) INTERVAL 1 DAY )
ORDER BY shipmentdate DESC本回答被提问者采纳
参考技术B 查询当月和上个月的数据:
select * from demo where date_format(date,'%Y-%m-%d')=current_date()
union all
select * from demo where year(date)=year(now()) and month(date)= month(subdate(curdate(), INTERVAL 1 month));

以上是关于mysql中的update语句怎么写的主要内容,如果未能解决你的问题,请参考以下文章

Mysql中的update语句如何嵌套子查询

在 sql 语法中出现错误,vb.net 中的 mysql update 语句

mysql中的root密码忘记了怎么办

PHP 准备 MySQL UPDATE 语句,其中包含字符串中的变量

mysql update 需要1秒多

为啥必须将表中的至少一列(在 MySQL 中)分配为 PRIMARY KEY,以便表通过 JDBC 接受 UPDATE 和 INSERT 语句?