使用字段组合查询python peewee

时间:2016-10-26 11:52:15

标签: python mysql orm peewee

我有一个带有字段名称的表:string和id_no:integer,来自外部源我获得了name和id_no的列表,我需要使用peewee ORM来获取这个组合的记录。

例如:

input = [
{'name':'name1', 'id_no': 1},
{'name':'name2', 'id_no': 2},
{'name':'name3', 'id_no': 3},
]

我为了获取上述数据组合的记录而编写什么查询?

在mysql中的类似查询:

SELECT * FROM table_name
WHERE CONCAT(convert(id_no, char), ':', name) IN ('1:name1','2:name2','3:name3')

1 个答案:

答案 0 :(得分:1)

我把它写成:

import operator

data = [
  {'name':'name1', 'id_no': 1},
  {'name':'name2', 'id_no': 2},
  {'name':'name3', 'id_no': 3},
]
conditions = [
  ((MyModel.name == item['name']) & (MyModel.id_no == item['id_no']))
  for item in data]
expr = reduce(operator.or_, conditions)
query = MyModel.select().where(expr)