在 MySQL 5.7 中,我准备使用如下 SQL DELETE 语句来删除一个数据表中符合特定条件的数据:
DELETE FROM my_table t WHERE t.id = 1
奇怪的是,此时 MySQL 数据库响应如下错误:
[Err] 1064 - 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 't WHERE t.id = 1' at line 1
我仔细检查了SQL语句貌似没有问题,多次尝试后,我发现只要把 数据表的别名 去掉,就可以正常执行,例如:
DELETE FROM my_table WHERE id = 1
为什么给数据表(Table)加上别名(Alias)就会报错呢?
如果需要编写复杂的 DELETE 语句,为了避免字段冲突,需要使用别名的时候,那又该怎么办呢?