【python】【sql】格式化注意事项

如果需要格式化表名到 sql 语句,sql 引擎是不支持的。

所以表名需要用字符串格式化,但其他参数最好用 sql 自带的格式,这样就不用去调一些细节,比如字符串的值是否要带引号之类的。

比如:

python 复制代码
cur.execute('SELECT {0} FROM {1} WHERE {2}="{3}"'.format(columnName, tableName, columnName, value))

# 上述是字符串格式化,所以参数 {3},如果是字符串,还要显式指定 ""

优化的方案是:

python 复制代码
cur.execute(f'SELECT ? FROM {tableName} WHERE ?=?', [columnName, columnName, value])

# 或者
cur.execute(F'SELECT ? FROM {tableName} WHERE ?=?', [columnName, columnName, value])

# 其中:
# f 和 F 是 python 格式化字符串的方法(python 3.6及以上提供)
相关推荐
前进的李工13 小时前
数据库视图:数据安全与权限管理利器
开发语言·数据库·mysql·navicat
C_心欲无痕13 小时前
使用 XLSX.js 导出 Excel 文件
开发语言·javascript·excel
小Tomkk13 小时前
化繁为简:Access 与 SQL 创新指南(第一篇)
sql·access
sycmancia13 小时前
C++——多态
开发语言·c++
不懒不懒14 小时前
【形态学图像处理:腐蚀、膨胀与边缘检测的核心技术解析】
python·opencv·计算机视觉
啊阿狸不会拉杆14 小时前
《计算机视觉:模型、学习和推理》第 18 章-身份与方式模型
人工智能·python·学习·计算机视觉·分类·子空间身份模型·plda
t1987512814 小时前
基于多尺度特征融合与自适应权重优化的水下图像对比度与边缘增强MATLAB方法
开发语言·matlab
Nontee14 小时前
Leetcode Top100答案和解释 -- Python版本(矩阵)
python·leetcode·矩阵
love530love14 小时前
ComfyUI 报错解决记录:NumPy/SciPy 不兼容与 OpenCV 扩展模块缺失
人工智能·windows·python·opencv·numpy·scipy·layerstyle
每天都在健身的程序员14 小时前
OpenClaw 部署 + 飞书对接完整教程【防踩坑版】
python·openclaw