2016-10-05 12 views
-1

文字列値からクエリをフィルタリングするために.containsと.ilikeの両方を使用しようとしています。SQLAlchemyクエリでilikeとcontains contains filterの両方を使用する

たとえば、クエリは次のようになります。

model.query.filter(model.column.contains.ilike("string").all() 

現在.containsで問い合わせる

は大文字と小文字を区別し、結果を返します。また、ilikeによるクエリは大文字と小文字を区別しない結果を返しますが、文字はあまりにも特定のクエリと一致する必要があります。私は潜在的な結果を.containsクエリと同じようにユーザに見せたい。

+1

なぜだけではなく、 '.ilike( "%文字列%")' ? – pozs

+0

@pozsは何を言っているのですか?しかし、将来参照するために、複数の引数を複数の引数として渡します: 'filter(column.contains( 'string')、column.ilike( 'string'))'。 – davidism

+0

@poz私はそれをしました。 .ilikeは、文字列がデータベース項目と完全に一致する場合にのみ結果を返します。たとえば、 'ant'と入力すると、文字列はデータベース内の 'ant'で始まるすべての項目を返します。 ilikeは、「アンテナabcd」とタイプしすぎると何かを返すだけです...私は「アンテナ」と入力すると、データベースのすべての「アンテナ」が返されます。 – l3o

答えて

0

のfoo = model.query.filter(model.column.ilike( "%" + string_variable + "%"))。すべての()

関連する問題