十年专注于品牌网站建设 十余年专注于网站建设_小程序开发_APP开发,低调、敢创新、有情怀!
南昌百恒网络微信公众号 扫一扫关注
小程序
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络微信小程序

百恒网络

南昌百恒网络

如何避免重复查询刚刚更新的数据MQYSQL

百恒网络 2014-09-09 7068

在数据查询过程中,我们经常希望在更新行的同时又希望获得该行的信息,要怎么做才能避免重复的查询呢?很遗憾的是,mysql并不支持像PostgreSQL那样的UPDATE RETURNING语法,这个语法可以帮咱们在更新的时候同时返回该行的信息,还好在MYSQL中你可以使用变量来解决这个问题.例如,我们的一个客户希望能够更高效地更新一条记录的时间戳,同时希望当前记录中存放的时间表戳是什么,简单地,可以用下面的代码实现;

UPDATE bhtable1 LASTUPDATED = NOW() WHERE ID=1; //更新时间

SELECT LASTUPDATED FROM bhtable1 where id=1; //读取时间

使用变量,我们可以按以下方式重写查询;

UPDATE bhtable1 SET LASTUPDATED =NOW() WHERE ID=1 AND @now := NOW();

SELECT @now;

上面看起来仍然需要两个查询,需要两次网络来回,但是这里的第二个查询无须访问任何数据表,所以会快非常多.南昌网站制作公司<百恒网络工程师提示大家,如果网络延迟非常大,那么这个优化的意可能不大,不过对于这个客户,这样做的效果很好.

原创文章出自:百恒网络 如转载请注明出处!专业,专注于南昌建网站,为用户提供高品质的网络产品及优质服务是我们始终的追求.

400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络小程序

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
售后服务 售后服务
 
备案专线 备案专线
 
×