python - 使用 Python 生成动态 sql 查询
问题描述
我有一个场景,我必须使用 python 生成一个动态字符串我得到一个包含一些字符串的数组,如下所示:
array = ["1","2", "5"]
和 aID = "1"
和它们都将以我想将此字符串作为值传递给 Sql 查询的方式合并,使用如下
我正在创建一个这样的字符串:
query := fmt.Sprintf("INSERT INTO %s(%s) VALUES(%s)", "Persons1", strings.Join(Columns, ","), values)
所以我将传递给上层的这个字符串就像我从那个数组和一个常量 ID 生成的一样
values = ("1", "1"), ("1", "2"), ("1", "5")
这样我就可以像这样从中生成查询
INSERT INTO Persons1 (LastName, FirstName) VALUES ("1", "1"), ("1", "2"), ("1", "5");
解决方案
您可以使用基本的字符串操作工具来实现结果:
query = "INSERT INTO Persons1 (LastName, FirstName) VALUES ";
id = "1"
array = ["1" ,"2" , "5"]
for item in array:
add_to_query = '("{}", "{}"), '.format(id, item)
query += add_to_query
query = query[:-2] # This will remove the last two characters from the query ", "
query += ";" # This will add the right character to terminate a SQL query
print(query)
输出
INSERT INTO Persons1 (LastName, FirstName) VALUES ("1", "1"), ("1", "2"), ("1", "5");
推荐阅读
- javascript - 为什么我的颜色选择器与视频中的颜色选择器看起来如此不同?
- xml - 如何使用 grep 从 xml 文件中提取值
- python-3.x - Python - 从布尔函数获取值而不访问它
- javascript - 使用 fetch api 时使用 socket.io 广播消息
- node.js - 无法在 Axios Express 中将有效负载数据发送到后端
- python - Tensorflow 自定义梯度的解析解释是什么?
- c# - Discord bot Task.Delay() 不能并行工作
- laravel - Laravel 路由中的破折号问题
- spring-cloud - Spring Cloud 断路器未进入 OPEN 状态
- filter - 在 Power BI 上创建日期度量作为筛选器