java - 使用 WHERE 子句 JOIN 更新另一个表
问题描述
我有下表:
习惯
ID INT PRIMARY KEY
NUMBER INT FOREIGN KEY
DATE DATE
DONE BOOL
习惯描述
NUMBER INT PRIMARY KEY
NAME VARCHAR
DESCRIPTION VARCHAR
我想对 HABIT 中的特定行进行更新,其中 HABIT_DESCRIPTION 的名称是 <some_string>
我试过这个:
ContentValues cv = new ContentValues();
cv.put(HABIT_COL_DONE, true);
String whereclause = HABIT_DESCRIPTION_NAME+ "='water'";
return db.update("HABIT",cv,whereclause,null);
解决方案
由于SQLite不支持UPDATE
语句中的连接,您可以使用EXISTS
:
String whereclause =
"EXISTS (SELECT 1 FROM HABIT_DESCRIPTION WHERE NUMBER = HABIT.NUMBER AND DESCRIPTION = ?)";
String param = "water";
return db.update("HABIT", cv, whereclause, new String[] {param});
推荐阅读
- arrays - 神秘地消失的单个数组元素仍然以某种方式在那里并且可以在完整的数组扩展中使用
- angular - 如何在正则表达式角度做“和”条件
- python - 将 Python.h 文件导入 C 程序时出错
- tkinter - 调用 tk.Destroy() 会阻止我以后使用其他 tk 窗口?
- python - Tkinter AutocompleteCombobox 自动对列表中的日期进行排序
- c# - .net 核心 api 和 razor 页面在一起
- python - 如何在不使用插件/XMP-Tookit 的情况下将自定义 XMP 数据添加到 PSD 文件的数据流中?
- python-3.x - 脚本未在 Pycharm 上运行
- java - M1 Mac - Flutter - 无法在物理或模拟设备上运行项目
- r - 根据其他两列中的值创建是/否列