MySQL的。这个insert + select + where语句有什么错误?

时间:2010-05-22 23:30:30

标签: mysql

这句话有什么问题?它适用于sqlite和MS sql(上次我测试过它)

我想要一个选择,除非与名称或电子邮件不匹配。然后我想插入。我把它作为一个声明,因为它很容易保持并发安全作为一个声明。 (它不是一个复杂的陈述)。

INSERT INTO `user_data` (
`last_login_ip`, `login_date`,
...) SELECT 
@0,
@14 WHERE not exists (SELECT * FROM `user_data` WHERE `name` = @15 OR 
`unconfirmed_email` = @16 LIMIT 1);

异常

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 not exists (SELECT * FROM `user_data` WHERE `name` = 'thename' OR 
`unconfirmed' at line 31

1 个答案:

答案 0 :(得分:4)

FROM中没有SELECT条款。如果您仔细查看documentation for SELECT,可以看到虽然FROM是可选的,但如果有WHERE条款,那么FROM是必需的:

SELECT ...
[FROM table_references
[WHERE ...]
...]

如果您不需要桌子,可以使用FROM DUAL

相关问题