SQLite语句语法错误靠近哪里

时间:2014-04-01 18:11:01

标签: android sql sqlite

我的SQL语句的语法有问题,LogCat说问题就在WHERE附近。我哪里做错了?

这是我的代码:

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 ] });

任何帮助或建议都会很乐意接受,这是我项目的最后一块拼图。当我完成这件事时,我已经可以休息了。提前谢谢。

1 个答案:

答案 0 :(得分:3)

{p> INSERTWHERE时不会进行UPDATE投影。

可能你想要

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

UPDATE SoccerPlayer SET Club=? WHERE Name=?

或者如果您想要在Name已经存在的情况下进行更新或以其他方式插入,

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

您需要表格具有一些相关约束,例如Name TEXT UNIQUE


编辑:

  

如果名称已经存在,我希望我的插入函数忽略插入

然后,您可以如上所述制作NameUNIQUE并使用INSERT OR IGNORE代替INSERT OR UPDATE