MYSQL-如何查询/修改最大日期的那条记录

本文详细介绍了如何使用SQL更新查询结合分组函数更新特定产品ID的商品信息,并展示了查询最新记录的方法。通过创建商品信息表,讨论了如何在新增商品时同步更新库存表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考资料:http://stackoverflow.com/questions/6898935/sql-update-query-with-group-by-clause

--  更新数据
UPDATE product_info AS t 
INNER JOIN 
(SELECT product_id,max(update_date) update_date FROM product_info WHERE product_id = 830 GROUP BY product_id) t1 
ON t.product_id = t1.product_id AND t.update_date = t1.update_date 
SET isActive = 1,remark = 'update操作直接再上架---3!';
-- 查询最新记录
select * from product_info AS t 
INNER JOIN 
(SELECT product_id,max(update_date) update_date FROM product_info GROUP BY product_id) t1 
where t.product_id = t1.product_id AND t.update_date = t1.update_date order by t.product_id;
-- 所用表的结构
CREATE TABLE `product_info` (
    `product_id` INT(10) UNSIGNED NOT NULL,
    `product_name` VARCHAR(50) NOT NULL,
    `cost_price` DECIMAL(10,2) UNSIGNED NOT NULL DEFAULT '0.00',
    `current_price` DECIMAL(10,2) UNSIGNED NOT NULL DEFAULT '0.00',
    `update_date` DATETIME NOT NULL DEFAULT '2015-01-01 00:00:00',
    `Remark` VARCHAR(255) NOT NULL DEFAULT '',
    `isActive` TINYINT(1) NOT NULL DEFAULT '1',
    INDEX `Idx_id` (`product_id`)
)
COMMENT='商品信息表(isActive表示现有产品是否在出售)\r\n此表在新增商品的时候在stock表中添加一条记录'
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;

 

转载于:https://www.cnblogs.com/ufindme/p/4494918.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值