問題タブ [query-builder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP 5.3 で SQL クエリを解析および再構築できる優れたクエリ ビルダーは何ですか?
ORM は必要ありません。ターゲットを絞って最適化されたクエリを自分で作成することに慣れており、ORM によってコードが肥大化することは望んでいません。
データベースで再コンパイルして実行する前に、既存のSQL 文字列を順応性のあるクエリ構築オブジェクトに変換して、さらに操作できる軽量のオブジェクト指向クエリ パーサーとビルダーを探しています。
ユース ケース自体は、現在有効な情報を含むパブリック スキーマ内のテーブルに対して実行されるクエリを更新し、監査スキーマからの代替テーブルを使用して、WHERE 句に述語を追加して (新しく置換された) 有効なデータから特定の時点のデータを提示します。 -時間状態テーブル。
私のもう 1 つの使用例は、事前に作成されたクエリを操作して、実行前に追加のフィルターを提供することです。
パーサー/ビルダーを使用すると、現在有効なクエリを記述できますが、それらをポイントインタイムの同等のものに簡単に変換できます。私は現在QueryBuilder
、再構築部分のためにDoctrine 2を襲撃することを計画しています. SQLクエリをベースコンポーネントに解析するための優れたライブラリを知っている人はいますか?
mongodb - Doctrine MongoDB で QueryBuilderAPI を使用して、1 つのフィールドに対して複数の条件でドキュメントを検索する方法は?
MongoDB には、ネイティブ MongoDB クエリで正常にクエリできるデータ モデルがあります。しかし、Doctrine MongoDB ODM の Query Builder API でそれらを表現することはできません。
これは私のモデルがMongoDBでどのように見えるかです(これはJSONコードの例です):
さまざまな特徴と値の組み合わせを検索して記事を見つけたい。たとえば、color=green で width=40 の記事を見つけたい。
しかし、Doctrine MongoDB ODM Query Builder API** を使用してそのためのクエリを作成できませんでした? これは私が試したものです:
ただし、これは 1 つの条件のみを含むクエリになります。他の条件は上書きされるようです。これは、クエリ ビルダーによって生成されたクエリです。
MongoDB ODM クエリ ビルダー API を使用してユース ケースを解決する方法はありますか?
php - Doctrine 2 で WHERE IN を使用する方法
エラーが発生する次のコードがあります。
コード:
データ (または $ids):
DQL 結果:
sql-order-by - Doctrine 2でカウントで注文する方法は?
エンティティをフィールド (年) でグループ化し、その数を数えようとしています。
コード:
エラーが出て何とも言えないようで、値COUNT(b.id) AS count
として何を使えばいいのかわからない?addOrderby(???, 'DESC')
kohana - クエリ ビルダーと条件文
そして、問題は何ですか?
良い:
私は何を間違っていますか?誰かがこれについて私を助けることができますか? お願いします!
ありがとうございました!
sql-server - Querybuilder 内にユーザー定義関数を埋め込む方法 (SQL SERVER 2008)
値を返すユーザー定義関数があります。この値をクエリ ビルダ内の選択クエリの列に追加しますか? 誰でも例を教えてください。
例: 'select sum(Marks) from StudentDB group by StudentID'.
ここで、fn_bonusMark という関数によって返される値を Sum(Marks) に追加したいと考えています。この関数を Querybuilder 内に埋め込むための構文を知りたいだけです。
criteria - JpaQueryBuilderwhere句の複数の式が機能しない
javax.persistence.criteria.CriteriaBuilderを使用したクエリの作成で問題が発生しました。EclipseLink2.1とOracle10gデータベースを使用しています。複数の制限があるクエリを作成する場合、最初の制限のみが使用され、両方は使用されません。
これが私のコードです:
生成されるクエリは次のとおりです。
where句を除いて見栄えがします。私は期待している:
cb.and(arg1、arg2)を使用するかどうかは関係ありません。私は何か間違ったことをしていますか?どんな助けでもありがたいです。
php - DRYの原則を使用して、サービスクラスで柔軟なベースの「find」メソッドを作成するのに役立ちます
何年もの間、私は同じコードを(進化を伴って)何度も何度も再実装してきましたが、それを抽象化するためのクリーンで効率的な方法を見つけることはありませんでした。
このパターンは、サービスレイヤーの基本的な「find [Type] s」メソッドであり、選択クエリの作成をサービス内の1つのポイントに抽象化しますが、より使いやすいプロキシメソッドをすばやく作成する機能をサポートします(PostServivce :: getPostByIdの例を参照)。 ()以下の方法)。
残念ながら、これまでのところ、私はこれらの目標を達成することができませんでした:
- 個別の再実装によって発生するエラーの可能性を減らします
- オートコンプリートのために、有効/無効なパラメーターオプションをIDEに公開します
- DRYの原則に従う
私の最新の実装は通常、次の例のようになります。このメソッドは、条件の配列とオプションの配列を取り、これらからDoctrine_Queryを作成して実行します(今日、これをほとんど書き直したので、タイプミスや構文エラーが発生する可能性があります。直接のカットアンドペーストではありません)。
ピューフ
この基本機能の利点は次のとおりです。
- スキーマの進化に合わせて、新しい条件とオプションをすばやくサポートできます
- これにより、クエリにグローバル条件をすばやく実装できます(たとえば、デフォルトのtrueで'excludeDisabled'オプションを追加し、呼び出し元が明示的に別の言い方をしない限り、すべてのdisabled = 0モデルをフィルタリングします)。
- これにより、プロキシがfindPostsメソッドにコールバックする新しい、より使いやすいメソッドをすばやく作成できます。例えば:
このアプローチの主な欠点は次のとおりです。
- 同じモノリシックな'find[Model] s'メソッドがすべてのモデルアクセスサービスで作成され、ほとんどの場合、条件スイッチ構造とベーステーブル名のみが変更されます。
- AND/OR条件操作を実行する簡単な方法はありません。すべての条件は明示的にANDされます。
- タイプミスの多くの機会をもたらします
- 規則ベースのAPIの中断に多くの機会をもたらします(たとえば、後のサービスでは、orderByオプションを指定するために別の構文規則を実装する必要があり、以前のすべてのサービスにバックポートするのが面倒になります)。
- DRYの原則に違反します。
- 有効な条件とオプションはIDEオートコンプリートパーサーに隠されており、オプションと条件のパラメーターでは、許可されたオプションを追跡するために長いドキュメントブロックの説明が必要です。
過去数日間、私はこの問題に対してよりOOのソリューションを開発しようとしましたが、あまりにも複雑で、使用するには制限が厳しすぎるソリューションを開発しているように感じました。
私が取り組んでいたアイデアは、次のようなものでした(現在のプロジェクトはDoctrine2 fyiになるので、少し変更します)...
そして最後に、Foo \ Service \ PostService \FindConditionsクラスのサンプル:
Foo \ Options\FindConditionsとFoo\Options \ FindOptionsは非常によく似ているため、少なくとも今のところ、どちらも共通のFoo\Options親クラスを拡張しています。この親クラスは、許可された変数とデフォルト値の初期化、設定されたオプションへのアクセス、定義されたオプションのみへのアクセスの制限、およびDqlOptionsMapperがオプションをループするためのイテレーターインターフェイスの提供を処理します。
残念ながら、これを数日間ハッキングした後、私はこのシステムの複雑さに不満を感じています。現状では、条件グループとOR条件はまだサポートされておらず、代替条件比較演算子を指定する機能は、FindConditionsを指定するときに値をラップアラウンドするFoo \ Options \ FindConditions\Comparisonクラスを作成することの完全な泥沼でした。値($conditions->setCondition('Foo', new Comparison('NOT LIKE', 'bar'));
)。
誰か他の人の解決策が存在する場合はそれを使用したいのですが、私が探していることを実行するものはまだありません。
このプロセスを超えて、実際に取り組んでいるプロジェクトの構築に戻りたいのですが、終わりが見えません。
だから、スタックオーバーフラワー:-欠点を含めずに私が特定した利点を提供するより良い方法はありますか?
doctrine - 設定されたパラメータを持つdoctrine 2 querybuilderが機能しない
これは私のクエリです:
public function getDetails($userid, $orderby, $sort){
エラーが発生し続けます: メッセージ: [Semantical Error] line 0, col 83 near '?3 DESC': Error: '?3' is not defined.
その関数のプロパティからクエリへの orderby を取得するにはどうすればよいですか?
c# - 入力したクエリを変更するQueryBuilder
QueryBuilderがクエリを変更するのはなぜですか?回避策はありますか?
以下のクエリを入力すると、QueryBuilderはクエリを以下のより複雑なバージョンに変更し、FillByメソッドに追加のパラメーターを必要とします。追加のパラメーターがあると、変更されたクエリが指数関数的に複雑になります。
入力:
変更:
目標:ユーザーが小道具、ロット、またはその両方で検索できるようにします。私の実際のプログラムは、いくつかの追加フィールドでクエリを実行します。
ノート:
- WinFormsプロジェクト(該当する場合はVB.NET)
- TestSelectionは、MicrosoftAccessデータベースのクエリです。