【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及以上提供)
相关推荐
我命由我123451 分钟前
Java 开发 - CountDownLatch 不需要手动关闭
android·java·开发语言·jvm·kotlin·android studio·android-studio
德彪稳坐倒骑驴8 分钟前
SQL连续登录问题
服务器·数据库·sql
葡萄城技术团队8 分钟前
告别臃肿 SQL:HR 系统如何实现“字段级”权限控制与动态脱敏方案?
数据库·sql
谭欣辰21 分钟前
详细讲解 C++ 状压 DP
开发语言·c++·动态规划
SQL必知必会22 分钟前
SQL HAVING 是什么?一篇讲清 WHERE 和 HAVING 的区别
数据库·sql
weixin_5689960623 分钟前
c++如何实现日志文件的异步落盘功能_基于无锁队列方案【附代码】
jvm·数据库·python
chaofan98029 分钟前
GPT-5.5 全压力测试:为什么 API 聚合调度是解决“首字延迟”的技术关键?
开发语言·人工智能·python·gpt·自动化·api
才兄说31 分钟前
机器人二次开发机器人动作定制?定制化舞蹈
python
William_wL_33 分钟前
【C++】stack和queue的使用和实现(附加deque的简单介绍)
开发语言·c++
曲幽35 分钟前
FastAPI配置管理避坑指南:从硬编码到 .env 与 pydantic_settings 类,连路由用法都给你捋清楚
python·fastapi·web·settings·config·pydantic·.env·dotenv·.env.prod