首页 > 解决方案 > 使用 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");

标签: pythonpython-3.x

解决方案


您可以使用基本的字符串操作工具来实现结果:

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");

有关切片的
更多信息 有关字符串格式的更多信息


推荐阅读