今天在开发中遇到了一个小问题,想要删除时间过期的数据,sql如下:
delete from company_url a where a.exptime <= curdate()
表面看上去是没问题的,然鹅执行之后报错了.....
image.png在同事的提醒下,得知是加了别名的问题,然后我去掉别名发现确实可以正确执行,可是我很好奇为什么不能加别名,又经过一番百度后才发现是在mysql中detele语法有所不一样:
delete <alias> from <table> <alias> where <alias>.<field>
所以正确的写法是:
delete a from company_url a where a.exptime <= curdate()
可参考官网上对DELETE语句语法的介绍:DELETE语句语法
网友评论