Is it possible to use a regex in a way similar to session.query(MyObject).filter_by(REGEX)
?
If not, how can I use sqlAlchemy to retrieve records that have a varchar PK beginning with a certain value (e.g. all those whose city field begins with "SA")? Thanks.
I think I got it:
session.query(Object).filter(Object.column.op('regexp')(REGEX))
For the record, you can do essentially the same syntax as Paulo Scardine's answer in SQLAlchemy too;
session.query(Object).filter(Object.column.like('something%'))
as of SqlAlchemy 1.4, there's a built-in regular expression operator, regexp_match.
[DISCLAIMER: no regex]
I'm answering to the question "how can I use sqlAlchemy to retrieve records that have a varchar PK beginning with a certain value" because for this simple use case a LIKE
probably is both less expensive and more portable (asking for regular expressions seems like a manifestation of the XY Problem).
In SQLAlquemy (borrowing from Alex):
session.query(Object).filter(Object.column.like('something%'))
In SqlSoup I use:
db.table.filter(db.table.column.like('something%'))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With