python - 为什么 Sqlite3 表不会更新
问题描述
我已经尝试对我的 sqlite3 表进行更新,但它似乎不起作用。
marks = "My long name here"
conn = sqlite3.connect('mydb.db')
cur=conn.cursor()
cur.execute("UPDATE '" + str(marks) +"' SET (ENG,KIS,MAT,BIO) = (-1,-1,-1,-1) WHERE (ENG,KIS,MAT,BIO) =('nan','nan','nan','nan')")
conn.commit()
conn.close()
我的代码中看不到任何错误。
解决方案
You don't need 4 separate statements.
You can do it in 1 statement with CASE
expressions:
UPDATE tablename
SET ENG = CASE WHEN ENG = 'nan' THEN -1 ELSE ENG END,
KIS = CASE WHEN KIS = 'nan' THEN -1 ELSE KIS END,
MAT = CASE WHEN MAT = 'nan' THEN -1 ELSE MAT END,
BIO = CASE WHEN BIO = 'nan' THEN -1 ELSE BIO END
WHERE 'nan' IN (ENG,KIS,MAT,BIO)
推荐阅读
- xcode - Xcode 似乎在运行脚本构建阶段修改了 bash 脚本中的路径
- excel - ADODB with provider MSDAORA in Powershell
- javascript - 合并来自不同查询的数据而不重复
- sql - Postgres Group by like 模糊逻辑
- sql-server - TSQL XQuery 过滤器仅选择包含至少一个字符(或非数字)的节点
- firebase - 托管在firebase中的React路由器应用程序,子路由返回404
- c# - 如何通过自定义子字符串相等性仅迭代不同的字符串值
- java - java 9999-12-31 iso 日期插入 mongo 结果作为非 iso 日期插入
- google-maps - 使用 google API 来判断一个地方有多忙
- webpack - 如何使用 Webpack 插件完全删除依赖项及其引用