Mysql delete语句报错 check the manual that corresponds to your MySQL server version for the right syntax

今天在开发中遇到了一个小问题,想要删除时间过期的数据,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语句语法

image.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容