为了账号安全,请及时绑定邮箱和手机立即绑定

请问如何在SQLite上连接表时进行更新?

请问如何在SQLite上连接表时进行更新?

阿晨1998 2019-11-06 09:05:56
如何在SQLite上连接表时进行更新?我试过:UPDATE closure JOIN item ON ( item_id = id ) SET checked = 0 WHERE ancestor_id = 1以及:UPDATE closure, item  SET checked = 0 WHERE ancestor_id = 1 AND item_id = id这两种方法都适用于MySQL,但这给我带来了SQLite中的语法错误。如何使此更新/连接与SQLite版本3.5.9一起工作?
查看完整描述

3 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

不行,SQLite不支持UPDATE语句中的联接.

但是,您可能可以使用子查询来实现这一点:

UPDATE closure SET checked = 0 
WHERE item_id IN (SELECT id FROM item WHERE ancestor_id = 1);

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



查看完整回答
反对 回复 2019-11-07
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

您也可以使用取代然后,可以将选择与联接一起使用。就像这样:

REPLACE INTO clusure 
 SELECT sel.col1,sel.col2,....,sel.checked --checked should correspond to column that you want to changeFROM (
 SELECT *,0 as checked FROM closure LEFT JOIN item ON (item_id = id) 
 WHERE ancestor_id = 1) sel



查看完整回答
反对 回复 2019-11-07
  • 3 回答
  • 0 关注
  • 387 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信