我似乎无法在此查询中找到错误所在。这是我第一次使用WHERE NOT EXISTS
语法。有人可以帮我确定我做错了什么吗?对我来说这似乎没问题..
INSERT INTO mojo (mojo_id, account_id) VALUES (35, 1)
WHERE NOT EXISTS (SELECT points_id FROM mojo
WHERE mojo_id = 35 AND account_id = 1 LIMIT 1) LIMIT 1
我似乎无法在此查询中找到错误所在。这是我第一次使用WHERE NOT EXISTS
语法。有人可以帮我确定我做错了什么吗?对我来说这似乎没问题..
INSERT INTO mojo (mojo_id, account_id) VALUES (35, 1)
WHERE NOT EXISTS (SELECT points_id FROM mojo
WHERE mojo_id = 35 AND account_id = 1 LIMIT 1) LIMIT 1
提示:如果您希望 mojo_id 和 account_id 的组合是唯一的。尝试在 MySql 中的这些字段上设置唯一索引。然后,将查询更改为:
INSERT IGNORE INTO mojo (mojo_id, account_id) VALUES (35, 1)
当 mojo_id 和 account_id 索引已经存在时,IGNORE 语句将跳过插入。
您正在使用values
而不是select
:
INSERT INTO mojo (mojo_id, account_id)
select 35, 1
from (select 1 as v) OneRow
WHERE NOT EXISTS (SELECT points_id
FROM mojo
WHERE mojo_id = 35 AND account_id = 1
) ;
该from
子句是因为 MySQL 需要一个from
子句才能使用where
.
我删除了limit 1
s,因为它们什么也没做。