4

SQLAlchemy で REGEXP_LIKE に相当するものをどのように使用できるか知っている人はいますか? たとえば、次のようなことができるようになりたいです。

sa.Session.query(sa.Table).filter(sa.Table.field.like(regex-to match))

ご協力いただきありがとうございます!

4

3 に答える 3

5

次のように動作するはずです(私はOracleにアクセスできません):

sa.Session.query(sa.Table) \
          .filter(sa.func.REGEXP_LIKE(sa.Table.c.column, '[[:digit:]]'))
于 2013-02-07T12:01:32.547 に答える
1

SQLAlchemy でサポートされていないデータベース固有の機能を実行する必要がある場合は、リテラル フィルターを使用できます。そのため、引き続き SQLAlchemy を使用してクエリを作成できます。つまり、結合などに注意してください。

PostgreSQL Regex Matching 演算子を使用してリテラル フィルターを組み合わせる方法の例を次に示します。~

session.query(sa.Table).filter("%s ~':regex_pattern'" % sa.Table.c.column.name).params(regex_pattern='stack')

または、あいまいな列名のケースを避けるために、テーブルと列をリテラル文字列の一部として手動で指定できます

session.query(sa.Table).filter("table.column ~':regex_pattern'"  ).params(regex_pattern='[123]')
于 2013-02-07T15:54:49.200 に答える