2014-04-01 109 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

非常感谢!有用。我终于可以休息了。 –