我想将字符串替换用于以逗号分隔的列表,例如:
query = """SELECT id, name, image_id
FROM users
WHERE id IN (%s)
"""
values = (','.join(uids))
results = dbc.getAll(query, values
执行查询:
SELECT id, name, image_id
FROM users
WHERE id IN ('1,2,3')
哪个不能按预期工作。
如何进行替换,以便在没有引号的情况下获得查询,例如:
SELECT id, name, image_id
FROM users
WHERE id IN (1,2,3)
答案 0 :(得分:3)
让MySQLdb执行整个参数替换。在这种情况下,预期参数values
应该是序列(1,2,3)
,而不是字符串'1,2,3'
:
query = """SELECT id, name, image_id
FROM users
WHERE id IN %s
"""
values = uids
results = dbc.getAll(query, [values])
答案 1 :(得分:1)
对我而言,它的工作方式如下:
cursor.execute(sql, (pids_list,))
我确保pids_list的元素是整数而不是字符串。