SQLalchemy查询中的正则表达式?

时间:2010-11-06 07:31:12

标签: python regex sqlalchemy

是否可以以与session.query(MyObject).filter_by(REGEX)类似的方式使用正则表达式?

如果没有,我如何使用sqlAlchemy检索varchar PK以某个值开头的记录(例如 city 字段以“SA”开头的所有记录)?感谢。

3 个答案:

答案 0 :(得分:34)

我想我明白了:

session.query(Object).filter(Object.column.op('regexp')(REGEX))

答案 1 :(得分:3)

[免责声明:没有正则表达式]

我正在回答这个问题“如何使用sqlAlchemy检索varchar PK以某个值开头的记录”,因为对于这个简单的用例,LIKE可能既便宜又便携(要求正则表达式似乎是the XY Problem)的表现形式。

在SQLAlquemy中(借用Alex):

session.query(Object).filter(Object.column.like('something%'))

在SqlSoup中我使用:

db.table.filter(db.table.column.like('something%')) 

答案 2 :(得分:3)

对于记录,您可以使用与Paul Scardine在SQLAlchemy中的答案基本相同的语法;

session.query(Object).filter(Object.column.like('something%'))