I tried this with MySQL:
我用MySQL试过这个:
DELETE FROM `contact_hostcommands_relation` AS `ContactHostCommand` WHERE (`ContactHostCommand`.`chr_id` = 999999) LIMIT 1
And I get this:
我明白了:
#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 'WHERE (`ContactHostCommand`.`chr_id` = 999999) LIMIT 1' at line 1
Note: This query is automatically generated and conditions are based on table aliases.
注意:此查询是自动生成的,条件基于表别名。
Why I get this error?
为什么我会收到此错误?
Is there any way to use table aliases in where clause?
有没有办法在where子句中使用表别名?
Is this MySQL specific?
这个MySQL是否具体?
3 个解决方案
#1
29
You can use SQL like this:
您可以像这样使用SQL:
DELETE FROM ContactHostCommand
USING `contact_hostcommands_relation` AS ContactHostCommand
WHERE (ContactHostCommand.`chr_id` = 999999)
LIMIT 1
#2
24
What @Matus and @CeesTimmerman said about MSSQL, works in MySQL 5.1.73 too:
@Matus和@CeesTimmerman关于MSSQL的内容也适用于MySQL 5.1.73:
delete <alias> from <table> <alias> where <alias>.<field>...
#3
5
You cannot use AS
in a DELETE
clause with MySQL :
您不能在MySQL的DELETE子句中使用AS:
DELETE FROM `contact_hostcommands_relation` WHERE (`chr_id` = 999999) LIMIT 1
#1
29
You can use SQL like this:
您可以像这样使用SQL:
DELETE FROM ContactHostCommand
USING `contact_hostcommands_relation` AS ContactHostCommand
WHERE (ContactHostCommand.`chr_id` = 999999)
LIMIT 1
#2
24
What @Matus and @CeesTimmerman said about MSSQL, works in MySQL 5.1.73 too:
@Matus和@CeesTimmerman关于MSSQL的内容也适用于MySQL 5.1.73:
delete <alias> from <table> <alias> where <alias>.<field>...
#3
5
You cannot use AS
in a DELETE
clause with MySQL :
您不能在MySQL的DELETE子句中使用AS:
DELETE FROM `contact_hostcommands_relation` WHERE (`chr_id` = 999999) LIMIT 1