2014-04-01 108 views
0

我遇到了我的SQL語句的語法問題,LogCat說問題在WHERE附近。我哪裏做錯了?SQLite語句附近的語法錯誤

這裏是我的代碼:

var inName = "Test Name"; 
var inNumber = "Test Number"; 
db.transaction(function (tx) { tx.executeSql('INSERT INTO SoccerPlayer(Name,Club) VALUES (?, ?) WHERE ? NOT IN (SELECT Name FROM SoccerPlayer)',[ inName, inNumber, inName ] }); 

任何幫助或建議將欣然接受,這是謎題爲我的項目的最後一塊。當我完成這個我已經可以休息了。提前致謝。

+0

什麼是**?**你能給出更多細節 –

+0

那些?將基於[inName,inNumber,inName]括號內的值。 –

+0

你可以嘗試靜態值爲*哪裏**名稱**不在.. * –

回答

3

INSERT不需要WHERE投影,而UPDATE呢。

也許你想你想在Name已經存在的情況下更新或者插入或者

INSERT INTO SoccerPlayer(Name,Club) VALUES (?, ?) 

UPDATE SoccerPlayer SET Club=? WHERE Name=? 

或情況下,

INSERT OR UPDATE INTO SoccerPlayer(Name,Club) VALUES (?, ?) 

在您需要該表有一些相關的約束條件,如Name TEXT UNIQUE


編輯:

我希望我的插入函數忽略插入如果已存在該名稱

然後你就可以使NameUNIQUE如上並使用INSERT OR IGNORE代替INSERT OR UPDATE

+0

這是爲我的插入功能,它在我的更新功能上工作。 我想我的插入函數忽略插入如果名稱已經存在。 –

+0

非常感謝!有用。我終於可以休息了。 –