java.sql.SQLException : near ".": syntax error 异常

标签 java sql sqlite jdbc

我找到了我搜索的用于更新某些字段的 SQL,但我得到了标题的错误:

UPDATE a
SET a.json = 'ex', a.last_save = 'ex', a.carte = 'ex'
FROM partie_l AS a
INNER JOIN carte AS b
ON a.start_carte = b.hash
WHERE b.json = 'ex' AND a.start_joueurs = 'ex' AND a.param = 'ex'

我已经用ex替换了我的数据,否则它会太长。

这是我的表的结构。

CREATE TABLE "carte" ("hash" TEXT  NOT NULL PRIMARY KEY ,"json" TEXT NOT NULL ,"nb_jrs" INTEGER,"preview" BLOB, "creator" TEXT DEFAULT atoll, "name" TEXT, "tetra" BOOL)

CREATE TABLE "partie_l" ("id" INTEGER PRIMARY KEY  NOT NULL ,"json" TEXT,"create" DATETIME,"last_save" DATETIME,"start_carte" TEXT,"preview" BLOB,"param" TEXT,"start_joueurs" TEXT,"carte" TEXT, "name" TEXT)

编辑:Sqlite 不支持内连接

最佳答案

尽量不要对要更新的表使用表别名。

UPDATE partie_l 
SET json = 'ex', 
    last_save = 'ex',
    carte = 'ex' 
FROM partie_l 
    INNER JOIN carte AS b 
    ON partie_l.start_carte = b.hash 
WHERE b.json = 'ex' AND partie_l.start_joueurs = 'ex' AND partie_l.param = 'ex' 

对于 SQLite 尝试

UPDATE partie_l 
SET json = 'ex', 
    last_save = 'ex',
    carte = 'ex' 
WHERE partie_l.start_joueurs = 'ex' 
AND partie_l.param = 'ex' 
AND partie_l.start_carte IN (SELECT hash FROM carte WHERE json='ex')

关于java.sql.SQLException : near ".": syntax error 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12231265/

相关文章:

sqlite - 如何以及何时在SQLite中执行PRAGMA语句?

java - Java 中 C-sharp 的 "#region"和 "#endregion"?

Java - 如何检查一个类是否继承自某个类或接口(interface)?

mysql - yii FULLTEXT 索引匹配查询

MySQL - 如何使用 LEFT JOIN 实现我想要的输出?

ruby - 如何使用 Sinatra 和 DataMapper 迁移数据库?

java - spring webflux 是否支持javax bean验证?

java - 为什么将 Type[] 转换为 Class[] 会抛出 ClassCastException?

SQLite 查询以匹配列中的文本字符串

sqlite( LIKE 或 LIKE)从 LIKE ( select )获得不同的结果