2011-06-10 64 views
0

當表格完全爲空時,我在MySQL表格中插入一行時出現問題。 我使用此查詢: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

我認爲唯一錯誤的是在第二行,刪除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) 
+0

你的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以找到在WHERE NOT EXISTS附近使用的正確語法(SELECT 1 FROM test WHERE amount> = 50 AND i'at line 3 我的查詢確實有效,只有當至少這就是問題:( – tink01 2011-06-10 18:02:58

+0

@ tink01好吧,試試剛剛發佈的更新...我從來沒有這樣做過,通常我會有條件地插入其他表的數據。 – Fosco 2011-06-10 18:09:37

+0

嘿,它工作!謝謝!:) – tink01 2011-06-10 18:12:24