webpy db select查询中的问题

时间:2011-12-09 09:44:36

标签: python mysql database web.py

在webpy db模块中,我有一个查询:

 db().query("select * from table where column in ($ERROR_LIST)",
    vars=dict(ERROR_LIST=ERROR_LIST)).list()

如果ERROR_LIST只是一个变量,则此查询没有问题。但我的要求是ERROR_LIST必须是错误值列表。有没有办法在webpy DB模块中处理列表,还是有其他方法可以完成这项工作?

1 个答案:

答案 0 :(得分:1)

如果您有一个包含值列表的变量error_list,请让webpy为您转换所有内容,并且不要在变量周围添加():

db.query("SELECT * FROM table WHERE column IN $ERROR_LIST", vars(dict(ERROR_LIST,error_list)))

由于我相信reparam使用相同的方法,这似乎有效(包括为您添加括号):

>>> error_list = ['a','b','c']
>>> reparam("s IN $ERROR_LIST", dict(ERROR_LIST=error_list))
<sql: "s IN ('a', 'b', 'c')">