問題タブ [where]
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.
sql - 「AUNION(B inA)」を使用するよりも効率的なSQL?
編集1(説明):これまでの回答ありがとうございます!応答は満足のいくものです。
答えに基づいて、問題の1つの側面を正しく説明していなかったと思うので、質問を少し明確にしたいと思います(そして、自分自身でも問題を定義するのに苦労していたので、それは私のせいだと確信しています)。
摩擦は次のとおりです。結果セットには、「2010-01-03」と「2010-01-09」の間にtstampが含まれるレコードと、最初のセットのorder_numごとにtstampがNULLであるレコードのみが含まれている必要があります( order_numごとに常にnulltstampを持つものになります)。
これまでに与えられた回答には、特定のorder_numのすべてのレコードが含まれているようです(存在する場合)'2010-01-03'と'2010-01-09'の間のスタンプ付き。たとえば、order_num=2およびtstamp=2010-01-12 00:00:00の別のレコードがあった場合、そのレコードは結果に含まれません。
元の質問:
id(一意)、order_num、tstamp(タイムスタンプ)、およびitem_id(注文に含まれる単一のアイテム)を含む注文テーブルについて考えてみます。順序が変更されていない限り、tstampはnullです。変更された場合、同じorder_numを持つ別のレコードがあり、tstampには変更が発生したときのタイムスタンプが含まれます。
例...
特定の日付範囲内に1回以上変更されたすべての注文(order_numに基づく)を取得するための最も効率的なSQLステートメントは何ですか?つまり、注文ごとに、同じorder_numを持つすべてのレコード(NULL tstampを持つレコードを含む)が必要です。order_numごとに、order_numの少なくとも1つにtstampNOTNULLおよびtstampBETWEEN'2010-01-03'があります。および「2010-01-09」。私が苦労しているのは、「order_numの少なくとも1つにtstampNOTNULLがある場所」です。
結果セットは次のようになります。
私が思いついたSQLはこれです。これは本質的に「AUNION(B in A)」ですが、実行速度が遅く、より効率的な解決策があることを願っています。
sql - SQL クエリ JOIN のパフォーマンス
パフォーマンスの面で何が優れているか知りたかったのですが、条件をJOINに入れるには? (x JOIN y on x.hi = y.hi AND ....) または、それを WHERE の下に置き、交差条件のみで JOIN を残します。
ありがとう
mysql - DBIでWHERE句ロジックを再利用するにはどうすればよいですか?
免責事項:初めてDBIを使用しました。
さまざまなクリーニングおよびテスト操作を実行するデータベースのチャンクを反復処理する長時間実行プロセスによってWHERE句を生成するために使用される、多くのインデックス付きフィールド(f1、f2、f3など)を持つMySQLテーブルがあります。
このコードの現在のバージョンは、次のように機能します。
とにかく、私はデータベースに非常に多くの行をダンプしようとしています。上記のコードはスケールアップしないことをよく知っています。他の言語に基づいて修正する方法はいくつか考えられます。Perlでそれを処理するための最良の方法は何ですか?
注意すべき重要な点は、のロジックget_list_of_ids()
が長すぎて各関数で複製できないことです。選択した行の操作は非常に多様です。
前もって感謝します。
c# - C# FindAll VS Where スピード
Where と FindAll on List の速度の違いは誰でも知っています。Where は IEnumerable の一部であり、FindAll は List の一部であることを知っています。何が速いのか知りたいだけです。
c# - Hibernate マッピング。結合されたサブクラスで宣言された要素のコレクションと where プロパティを設定します
永続化されたデータに削除のフラグを立てることができるプロジェクトに取り組んでいますが、列 (is_deleted) が TRUE に設定されたデータベースに残ります。
これは、hibernate クラス マッピング プロパティ「where」を使用し、where="is_deleted = 0" をタグに追加することで正常に機能します。しかし、サブクラス要素のセットを宣言すると失敗します。
この簡単な例では、クラス「CarPart」から継承するクラス「Wheel」のメンバー コレクションを含むクラス「Car」を使用します。
コードでコレクションCar.Wheelsにアクセスしようとすると、IsDeleted プロパティが実際に存在するスーパークラス「CarPart」ではなく、「where」句がサブクラス「Wheel」のテーブルに適用されるため、SQL エラーが発生します。定義されています。
生成された SQL は次のようになります。
正しいというより
- これはバグですか?または、詳細がありませんか?スーパークラスの CarPart には既に where="is_deleted = 0" が含まれているため、論理的には、定義されたすべてのサブクラスにこれを適用する必要がありますか?
- NHibernate で永続化されたすべてのデータに is_deleted フラグを追加する他の方法はありますか?
あなたの助けは非常に高く評価されています
mysql - カウントが必要な場合に、列が異なる 2 つのテーブルから選択する
TableA と TableB の 2 つのテーブルがあります。where 条件に基づいて、TableA からカウント値を 1 つ選択する必要があります。TableB から 2 つの値を選択する必要があります。1 つの結果セットにすべての値が必要です。結果セットに複数の行が存在することはありません。
これが私が今持っているものです:
SELECT count(id) FROM TableA WHERE ($some_where_statement) SELECT owner, owner_ID from TableB
これは簡単なはずですが、これはエラーをスローしています。助言がありますか?
mysql - クエリ数の結果 > 0
次のようなクエリを実行する必要があります。
しかし、それが機能する必要がありますか?
where - mysql の where 句の最大値
where in 句で指定できる値の数を知っている人はいますか? where in 句で 25000 の値を取得し、mysql を実行できません。何かご意見は?あなたの考えを待っています
mdx - MDX - 「Where」セクションで「iif」関数を使用する
こんにちは、その「iif」を機能させる方法を知りたいです。
基本的に、発信者が「John Smith」の場合、エンジニアリングの「製品コード」をフィルタリングする必要があります。currentmember が機能していない、または iif が機能していない、
何か案は?
前もって感謝します。
デュイ
mysql - MySQL の「where col in (list)」の代替
こんにちは、次のテーブル T があります。
group by(col) が count(col)>1 の場合に id,col を返す select を実行したい
それを行う1つの方法は
インターン select (右から) は 'a' を返し、メインのもの (左) は 1,a と 3,a を返します
問題は、 where in ステートメントが非常に遅いように見えることです。私の実際のケースでは、内部選択の結果には多くの「列」があり、約 70000 で、数時間かかります。
現時点では、内部選択とメイン選択を実行してすべての ID と UPC を取得し、交差をローカルで実行する方がはるかに高速です。MySQL は、この種のクエリを効率的に処理できる必要があります。
結合またはより高速なものの代わりに where in を使用できますか?
ありがとう