最近,在工作中遇到这样一条SQL :
delete from TD_T_ADMIN_ROLE_RELATION c where ACCOUNT_ID = ##;
在执行之后,抛出这样一个异常:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'c where ACCOUNT_ID = 'shjzhyewuyuan'' at line 1
阅读之后不难发现,问题就出现在表的别名的地方,但是在我的印象里在 from 之后给表名加别名是没有什么不妥之处的。然后就去网上查资料,在MySQL的官网上找到了这个:
我理解的意思是说,要么不用表别名,要么需要在delete 和 from 之间再写一次,如
delete c from TD_T_ADMIN_ROLE_RELATION c where ACCOUNT_ID = ##;
因为我这条SQL比较简单,用不用别名都差不多,我就把别名删掉了