webpy 数据库选择查询中的问题
在webpy的数据库模块中,我有一个查询:
db().query("select * from table where column in ($ERROR_LIST)",
vars=dict(ERROR_LIST=ERROR_LIST)).list()
如果ERROR_LIST
只是一个普通的变量,这个查询没有问题。但是我的需求是ERROR_LIST
必须是一个错误值的列表。有没有办法在webpy数据库模块中处理列表,或者有没有其他方法可以实现这个需求?
1 个回答
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')">