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

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

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

慕少森 2019-07-15 19:45:01
如何在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贡献1877条经验 获得超1个赞

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

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

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

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


查看完整回答
反对 回复 2019-07-15
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

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

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-07-15
  • 3 回答
  • 0 关注
  • 972 浏览
慕课专栏
更多

添加回答

举报

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