【问题标题】:SQLite statement syntax error near wherewhere 附近的 SQLite 语句语法错误
【发布时间】:2014-04-01 18:11:01
【问题描述】:

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

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

【问题讨论】:

  • 什么是你能提供更多细节
  • 那些?将基于括号内的值,即 [ inName, inNumber, inName ]。
  • 你能试试 Name 不在 .. 中的静态值吗
  • 你能在下面看到我的答案吗?

标签: android sql sqlite


【解决方案1】:

INSERT 不进行 WHERE 投影,而 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

【讨论】:

  • 这是我的插入功能,它适用于我的更新功能。如果名称已经存在,我希望我的插入函数忽略插入。
猜你喜欢
  • 1970-01-01
  • 2020-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-12
  • 2016-03-12
  • 1970-01-01
相关资源
最近更新 更多