当表完全为空时,我在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,仍然是同样的问题。还有另一种方法吗?
答案 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)