SQLAlchemy query LIKE statement
SQLAlchemy provides a number of methods for generating a LIKE
clause in a query:
like
select(User).where(User.name.like(f'%{some_term}%'))
contains
Search term inside % wildcards
select(User).where(User.name.contains('i'))
startswith
Search term followed by % wildcard
select(User).where(User.name.startswith('a'))
endswith
Search term preceeded by % wildcard
select(User).where(User.name.endswith('e'))
Note that each of these has a case-insensitivt counterpart:
* like
-> ilike
* contains
-> icontains
* startswith
-> istartswith
* endswith
-> iendswith
Ref: https://stackoverflow.com/a/77111773