条件に基づいて動的にクエリを作成するにはどうすればよいですか?

レモンの木

ユーザーの要求に基づいて、可能な基準の範囲(0〜4)でデータストアにクエリを実行したいと思います。NDBのクエリは次のように作成されます。

query = Account.query(Account.userid >= 40, Account.userid < 50)

次のようなことができる方法はありますか?

myfilter = []
myfilter.push('Account.userid >= 40')
myfilter.push('Account.userid < 50')
myfilter.push('Account.name == "John"')
query = Account.query(*myfilter)

条件に応じて、0から4のフィルター引数があります。私の仮定(間違っている可能性があります)は、必要がない場合は、キャッチオール(例:Account.userid == *)を使用するよりもフィルターを省略する方が最適であるということです。

フィルタをチェーンできることは知っていますが、クエリオブジェクトは不変であるため、これが役立つかどうかはわかりません。

ダン・コルニレスク

はい、可能です。プロパティ値によってフィルタリング

単一の式でクエリフィルター全体を指定する代わりに、次の手順で作成する方が便利な場合があります。例:

query1 = Account.query()  # Retrieve all Account entitites
query2 = query1.filter(Account.userid >= 40)  # Filter on userid >= 40
query3 = query2.filter(Account.userid < 50)  # Filter on userid < 50 too

query3query前の例の変数と同等です。クエリオブジェクトは不変であるため、の構築はquery2影響を与えquery1ず、の構築はまたはにquery3影響を与えないことに注意してくださいquery1query2

このようなインクリメンタルクエリビルド手法を使用して、必要に応じて条件付きでフィルターを追加できます。例(これは、オプションの条件間の全体的なANDを想定しています):

query = Account.query()  # Retrieve all Account entitites
loggin.error(query)

if filter_by_userid:
    query = query.filter(Account.userid >= 40, Account.userid < 50)
    loggin.error(query)

if filter_by_username:
    query = query.filter(Account.name == "John")
    loggin.error(query)

loggin.error('Final: %s' % query)

上記のスニペットは、クエリオブジェクトの可換性を具体的に利用しており、query変数への各割り当ては、それぞれのフィルタを適用することによって取得され新しいクエリオブジェクトを実際に格納します。関連するログメッセージによって確認されます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SQLの条件に基づいてクエリを表示するにはどうすればよいですか?

分類Dev

HTMLアイテムIDに基づいて動的にクエリを作成するにはどうすればよいですか?

分類Dev

条件に基づいて新しい列を作成するにはどうすればよいですか?

分類Dev

Pythonのさまざまな条件に基づいて動的にリストを作成するにはどうすればよいですか?

分類Dev

範囲に基づいてサブクエリを使用するにはどうすればよいですか?

分類Dev

曜日に基づいてIf-Elseクエリを使用するにはどうすればよいですか?

分類Dev

条件に基づいてUITableViewセルを作成するにはどうすればよいですか?

分類Dev

条件に基づいてRow_number()を作成するにはどうすればよいですか?

分類Dev

条件に基づいて列名のペアを作成するにはどうすればよいですか?

分類Dev

論理条件に基づいて論理変数を作成するにはどうすればよいですか?

分類Dev

条件に基づいてSQL選択を作成するにはどうすればよいですか?

分類Dev

ファイルに基づいてシンボリックリンクを自動的に作成するにはどうすればよいですか?

分類Dev

クエリを実行して、条件に基づいて目的の行を列に変換するにはどうすればよいですか

分類Dev

Azure DevOpsでプルリクエストに基づいてビルドを自動的にトリガーするにはどうすればよいですか?

分類Dev

別のSELECTの結果に基づいて何かをSELECTするクエリを作成するにはどうすればよいですか?

分類Dev

アクティブなルーターリンクに基づいて条件付きコードを作成するにはどうすればよいですか

分類Dev

コマンドからの出力に基づいて、Bash条件付きスクリプトを作成するにはどうすればよいですか?

分類Dev

SQLクエリを使用して条件に基づいて次のレコードを取得するにはどうすればよいですか?

分類Dev

一意の列値に基づいて結果をカウントするクエリを作成するにはどうすればよいですか?

分類Dev

ジェネリックパラメーターに基づいて条件付き交差を作成するにはどうすればよいですか?

分類Dev

入力パラメータに基づいてselectクエリのwhere句で特定の条件を実行するにはどうすればよいですか?

分類Dev

一部のパラメーターに基づいて弾性検索クエリを動的に生成するにはどうすればよいですか

分類Dev

where条件に基づいてクエリの出力に優先順位を付けるにはどうすればよいですか?

分類Dev

最大値に基づいてリストを作成するにはどうすればよいですか?

分類Dev

メディアクエリに基づいてカルーセルを作成および削除するにはどうすればよいですか?

分類Dev

条件付きjqクエリに基づいてフラットな出力を取得するにはどうすればよいですか?

分類Dev

クエリから取得した値に基づいて「if」を作成するにはどうすればよいですか?

分類Dev

SQLiteクエリに基づいてプログラムでListViewを作成するにはどうすればよいですか?

分類Dev

ALL条件に対してこのSQLクエリを作成するにはどうすればよいですか?

Related 関連記事

  1. 1

    SQLの条件に基づいてクエリを表示するにはどうすればよいですか?

  2. 2

    HTMLアイテムIDに基づいて動的にクエリを作成するにはどうすればよいですか?

  3. 3

    条件に基づいて新しい列を作成するにはどうすればよいですか?

  4. 4

    Pythonのさまざまな条件に基づいて動的にリストを作成するにはどうすればよいですか?

  5. 5

    範囲に基づいてサブクエリを使用するにはどうすればよいですか?

  6. 6

    曜日に基づいてIf-Elseクエリを使用するにはどうすればよいですか?

  7. 7

    条件に基づいてUITableViewセルを作成するにはどうすればよいですか?

  8. 8

    条件に基づいてRow_number()を作成するにはどうすればよいですか?

  9. 9

    条件に基づいて列名のペアを作成するにはどうすればよいですか?

  10. 10

    論理条件に基づいて論理変数を作成するにはどうすればよいですか?

  11. 11

    条件に基づいてSQL選択を作成するにはどうすればよいですか?

  12. 12

    ファイルに基づいてシンボリックリンクを自動的に作成するにはどうすればよいですか?

  13. 13

    クエリを実行して、条件に基づいて目的の行を列に変換するにはどうすればよいですか

  14. 14

    Azure DevOpsでプルリクエストに基づいてビルドを自動的にトリガーするにはどうすればよいですか?

  15. 15

    別のSELECTの結果に基づいて何かをSELECTするクエリを作成するにはどうすればよいですか?

  16. 16

    アクティブなルーターリンクに基づいて条件付きコードを作成するにはどうすればよいですか

  17. 17

    コマンドからの出力に基づいて、Bash条件付きスクリプトを作成するにはどうすればよいですか?

  18. 18

    SQLクエリを使用して条件に基づいて次のレコードを取得するにはどうすればよいですか?

  19. 19

    一意の列値に基づいて結果をカウントするクエリを作成するにはどうすればよいですか?

  20. 20

    ジェネリックパラメーターに基づいて条件付き交差を作成するにはどうすればよいですか?

  21. 21

    入力パラメータに基づいてselectクエリのwhere句で特定の条件を実行するにはどうすればよいですか?

  22. 22

    一部のパラメーターに基づいて弾性検索クエリを動的に生成するにはどうすればよいですか

  23. 23

    where条件に基づいてクエリの出力に優先順位を付けるにはどうすればよいですか?

  24. 24

    最大値に基づいてリストを作成するにはどうすればよいですか?

  25. 25

    メディアクエリに基づいてカルーセルを作成および削除するにはどうすればよいですか?

  26. 26

    条件付きjqクエリに基づいてフラットな出力を取得するにはどうすればよいですか?

  27. 27

    クエリから取得した値に基づいて「if」を作成するにはどうすればよいですか?

  28. 28

    SQLiteクエリに基づいてプログラムでListViewを作成するにはどうすればよいですか?

  29. 29

    ALL条件に対してこのSQLクエリを作成するにはどうすればよいですか?

ホットタグ

アーカイブ