MySQL在插入具有特定条件的行时出现问题

时间:2011-06-10 17:19:07

标签: mysql insert

当表完全为空时,我在MySQL表中插入一行时遇到问题。 我使用这个查询:

INSERT IGNORE INTO test (id, amount) 
SELECT 6, 50 FROM test WHERE NOT EXISTS 
(SELECT 1 FROM test WHERE amount >= 50 AND id = 6) LIMIT 1

当表中至少有一个条目时,无论列中的数据是什么,它都能正常工作。如果表格完全为空,则不起作用。

基本上,如果不存在具有相同ID且金额等于或大于等的行,我想插入一行。

我也尝试了COUNT,仍然是同样的问题。还有另一种方法吗?

1 个答案:

答案 0 :(得分:1)

我认为唯一有问题的是第二行,删除FROM test ..你不能select 6, 50 from test .. 6和50不是测试中的列,测试没有记录。试试这样:

INSERT IGNORE INTO test (id, amount) 
SELECT * from (select 6, 50) as a 
WHERE NOT EXISTS (SELECT 1 FROM test 
                  WHERE amount >= 50 AND id = 6)