首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在连接SQLite上的表时进行更新?

如何在连接SQLite上的表时进行更新?
EN

Stack Overflow用户
提问于 2009-04-22 00:19:46
回答 2查看 53.5K关注 0票数 93

我试过了:

代码语言:javascript
复制
UPDATE closure JOIN item ON ( item_id = id ) 
SET checked = 0 
WHERE ancestor_id = 1

和:

代码语言:javascript
复制
UPDATE closure, item 
SET checked = 0 
WHERE ancestor_id = 1 AND item_id = id

这两种方法都适用于MySQL,但是在SQLite中出现了语法错误。

如何使此更新/加入与SQLite版本3.5.9一起工作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-04-21 19:51:23

你不能,SQLite doesn't support JOINs in UPDATE statements

但是,您可能可以使用子查询来完成此操作:

代码语言:javascript
复制
UPDATE closure SET checked = 0 
WHERE item_id IN (SELECT id FROM item WHERE ancestor_id = 1);

或者类似的东西;还不清楚您的模式到底是什么。

票数 130
EN

Stack Overflow用户

发布于 2016-01-13 20:19:49

你也可以使用REPLACE,然后你就可以使用selection和joins了。如下所示:

代码语言:javascript
复制
REPLACE INTO clusure 
 SELECT sel.col1,sel.col2,....,sel.checked --checked should correspond to column that you want to change
FROM (
 SELECT *,0 as checked FROM closure LEFT JOIN item ON (item_id = id) 
 WHERE ancestor_id = 1) sel
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/773441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档