我有這個查詢,如果表中沒有相同ID的金額等於或高於此值,應該插入一個金額。INSERT和WHERE不存在的怪異SQL行爲
我嘗試這樣做的MySQL 5.1和MSSQL 2K5下:
的MySQL
INSERT IGNORE INTO測試(ID,金額) SELECT 6,50 FROM測試 WHERE NOT EXISTS(SELECT 1 FROM測試WHERE量> = 50和ID = 6)LIMIT 1
MSSQL
INSERT INTO噸EST(ID,金額) SELECT 6,50 FROM測試 WHERE NOT EXISTS(SELECT TOP 11 FROM測試WHERE量> = 50和ID = 6)
該查詢工作正常,如果已經存在至少一個條目在桌子裏。如果表格是空的,它將無法工作。這與MySQL(5.1)和MSSQL(2005)下的行爲是一樣的。 我不明白爲什麼。任何人都有解釋和方法來解決這個查詢工作,即使表是完全空的?
編輯:我需要這個MySQL的主要...
更新:我開始了新的問題,特別爲MySQL: MySQL Problem with inserting a row with certain conditions
是SELECT TOP 1 1 = SELECT TOP 1 *? – Chris 2011-06-10 16:02:44
@Chris我認爲是這樣,並在一個「存在(選擇...」我認爲沒有頂部需要和1也不需要太 – Ice 2011-06-10 16:33:16
我仍然無法使其在MySQL下工作...如果你有另一種方法可以做到這一點,這也可以..也許左連接可以工作嗎? – tink01 2011-06-10 16:35:56