如何进行动态SQL查询?

时间:2018-06-19 22:01:14

标签: python-3.x

所以我要从一个API插入一些代码到我的SQL数据库中 为我获取一些数据。问题是“类型”和“值”的数量不同 它提供给我的数据范围是7-10。

我当前正在格式化包含我的SQL命令的字符串。我这样做之后 检查长度,然后根据需要更改字符串和格式 “值”的长度(与“类型”相同;每个“值”都有对应的类型)。

我是使用Python编码的新手,所以随时向我扔一些新东西 解决此问题的方法的想法,谢谢,这是我的代码:

if len(values) == 10:
    cmd = """INSERT INTO children_test_2 ({}, {}, {}, {}, {}, {}, {}, {}, {}) 
    VALUES ({}, {}, {}, {}, {}, {}, {}, {}, {});"""
    cmd = cmd.format(types[0], types[1], types[2], types[3], types[4], types[5], types[6], types[7], types[8],
                     types[9], values[0], values[1], values[2], values[3], values[4], values[5], values[6],
                     values[7], values[8], values[9])
if len(values) == 9:
    cmd = """INSERT INTO children_test_2 ({}, {}, {}, {}, {}, {}, {}, {}, {}) 
    VALUES ({}, {}, {}, {}, {}, {}, {}, {}, {});"""
    cmd = cmd.format(types[0], types[1], types[2], types[3], types[4], types[5], types[6], types[7], types[8],
               values[0], values[1], values[2], values[3], values[4], values[5], values[6], values[7], values[8])
if len(values) == 8:
    cmd = """INSERT INTO children_test_2 ({}, {}, {}, {}, {}, {}, {}, {}) 
    VALUES ({}, {}, {}, {}, {}, {}, {}, {});"""
    cmd = cmd.format(types[0], types[1], types[2], types[3], types[4], types[5], types[6], types[7],
               values[0], values[1], values[2], values[3], values[4], values[5], values[6], values[7])
if len(values) == 7:
    cmd = """INSERT INTO children_test_2 ({}, {}, {}, {}, {}, {}, {}) 
    VALUES ({}, {}, {}, {}, {}, {}, {});"""
    cmd = cmd.format(types[0], types[1], types[2], types[3], types[4], types[5], types[6],
               values[0], values[1], values[2], values[3], values[4], values[5], values[6])

1 个答案:

答案 0 :(得分:0)

cmd = ('INSERT INTO children_test_2 ' + ' VALUES '.join(['(' + ', '.join(['{}']*len(values)) + ')']*2) + ';').format(*(types + values))