是否可以以与session.query(MyObject).filter_by(REGEX)
类似的方式使用正则表达式?
如果没有,我如何使用sqlAlchemy检索varchar PK以某个值开头的记录(例如 city 字段以“SA”开头的所有记录)?感谢。
答案 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%'))