SQLalchemy查询中的正则表达式?

2024-06-08 16:12:56 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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


Tags: citybysqlalchemysession记录safilterquery
3条回答

我想我明白了:

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

当然,你也可以用SQLAlchemy做与Paulo Scardine的答案基本相同的语法

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

[免责声明:没有regex]

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

在SQLAlquemy中(从Alex借用):

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

在SqlSoup中,我使用:

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

相关问题 更多 >