python - webpy db 选择查询中的问题

标签 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 数据库模块中的列表,或者有没有其他方法可以完成这项工作?

最佳答案

如果您有一个包含值列表的变量 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')">

关于python - webpy db 选择查询中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8443641/

相关文章:

python - 在 Python 中搜索两个复杂的正则表达式模式之一而不创建子匹配

python - 在 2D numpy 数组中找到给定角度的最近项目

mysql - 无法添加或更新子行 : a foreign key constraint fails

php - 在存在的地方插入值

mysql - 如何使用多个连接优化 MySQL 查询?

database - 在 Linux 和 OSX 中创建数据库模型的程序

database - 如何使用 Cassandra 数据库 (cql) 和 node.js 的简单示例

python - 如何将 csv 格式的数字数据读入 Pandas

python - 如何使用 Django 迁移重新创建已删除的表?

mysql - 无法将外键添加到表