問題タブ [where-in]
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.
mysql - MySQL where-in サブクエリが 1 行のみを返す
私は2つのテーブルコースと学生を持っています
たとえば、学生にはフィールドがあります: id
、first_name
データ付き
たとえば、コースにはidと学生の2つのフィールドがあります
データあり:
id . . . . . . . . 1. . . . . . 2
学生 。. . 1,2,5。. . .3,4,6,7
コース1の学生の名前を見つけたいとしましょう
SELECT students FROM courses c WHERE c.id = 1;
予想通り1,2,5が得られます
また
SELECT @students := students FROM courses c WHERE c.id =1;
予想通り1,2,5が得られます
と
SELECT s.first_name FROM students s WHERE s.id IN (1,2,5);
予想通り、Andrew、Brian Eric が生成されます
SET @students := students FROM courses c WHERE c.id =1;
@生徒を選択;`
1、2、5が得られます
私は期待するだろう
SET @students := students FROM courses c WHERE c.id =1;
SELECT s.first_name FROM students s WHERE s.id IN (@students);
アンドリュー、ブライアン・エリックを産む
ただし、最初の名前のみが返されます: アンドリュー
別の course_student ルックアップ テーブルを作成できる/作成する必要があることは十分承知していますが、期待した結果が得られない理由を理解したいと思っています。
どこが間違っていますか?
mysql - WHERE-IN または FIND_IN_SET
正規化されていないデータベースには、バッチという名前のテーブルがあります
テーブル batches には、複数の ID を持つフィールド student_ids があります。例えば1311, 1319, 1400
From: SELECT student_ids FROM バッチ WHERE 1311 IN(student_ids)
Student_id を取得します。1311, 1319, 1400
そして: SELECT student_ids FROM batches WHERE 1319 IN(1311, 1319, 1400)
正常に動作します:1311, 1319, 1400
しかし
SELECT student_ids FROM バッチ WHERE 1319 IN(student_ids)
また
SELECT @student_ids := Student_ids FROM バッチ b; SELECT Student_ids FROM バッチ WHERE FIND_IN_SET(1319, @student_ids)
戻り値Null
私は何が欠けていますか?最初の結果を配列に変換する必要があると思いますが、どうすればよいでしょうか?
私はDashの提案を試しました(Dashに感謝します)が、まだ問題があります
SELECT id FROM batches WHERE INSTR(','+1319+',', ','+CAST(student_ids AS CHAR) + ',') も試しました
Matt Ellen が別の投稿で提案したように - 最初の項目が一致する場合にのみ機能します
mysql - MySQL: RANGE クエリでの ORDER BY、パフォーマンスの低下
400,000 を超えるレコードを含むMyIsamテーブルから、定義されたユーザーのリストによって送信された最後の 20 件の投稿を選択する必要があるクエリに取り組んでいます。唯一の問題は、クエリが約0.6秒で実行され、場合によっては 2 秒以上かかることです。
ORDER BYクエリを削除すると、はるかに高速になり、"post_author" 列で正しいインデックスが使用され、代わりに完全なテーブル スキャンが実行されます...このようなクエリを作成する最良の方法は何ですか?
author_index を使用したテスト #1
- プライマリ(post_id)
- author_index (post_author)
時間: 0.7 秒
時間: 0.004 秒
複合インデックスを使用したテスト #2
- プライマリ(post_id)
- view_posts_index (post_id, post_author)
時間: 0.05 秒
時間: 1.5 秒
複合インデックスと author_index を使用したテスト #3
- プライマリ(post_id)
- view_posts_index (post_id, post_author)
- author_index (post_author)
時間: 0.7 秒
時間: 0.0037 秒
ご協力いただきありがとうございます。
mysql - mysql-複数の文字列のすべてのインスタンスの数
たとえば絞り染めのTシャツのテーブルがあるとしましょう...一部のシャツには複数の色があり、文字列としてコンマで区切られてリストされています。blue,yellow,red,purple
またはなどgreen,white,black,red
。
各色が何回存在するかをカウントするために、1つのクエリを実行したいと思います。どの「色」が列に存在するかを事前に知っています。
私が今しているのは、「色」ごとに個別のクエリです。
等.....
15の異なるクエリよりも効率的な方法はありますか?
例:テーブルに""の列'color'の値がblue, red, yellow
あり、別の行がcolor=" red, green, yellow
"などになる場合...
次を返すクエリを探しています:
sql - 「IN」句の要素数が増えると、SQL のパフォーマンスは低下しますか?
こんなお問い合わせがあり、
データベースには何百万もの顧客が存在する可能性があります。このクエリの効率に問題はありますか? IN ステートメント内の Id の数が多い場合は? もしそうなら、その理由と回避策は?
私はSQLServerを使用しています。以下は私のテーブル構造です
Id は主キー - 非クラスター化インデックスです。
ruby-on-rails - Rails where In が認識しない場所
undefined method where
これらのパラメーターを使用して以下のコードを実行すると、エラーが発生し続けます。
誰かが私が間違っていることを見ることができますか?
ありがとう
sql - CouchDBでWHERE-INクエリを実行する
CouchDBを1回呼び出すだけで、特定のドキュメントのリストを照会したいと思います。
SQLで私は次のようなことをします
CouchDBで、_id
または別のフィールドでこれを行うためのレシピは何ですか?
postgresql - PostgreSQL: WHERE IN と NOT WHERE IN
フィールド によって参照される とA
の2 つのテーブルがあるため、 に存在する任意の値が.B
A
B
A.id_b B.id
id_b
B.id
3 つのクエリがあります。
それは私に与えます0
;
2 つ目、違いはNOT
:
このクエリは私に与えます:1899
三つ目:
そして、このクエリは私に3599
同じ結果:
2つのセットに分割することを保証B.id
し、両方のセットの要素の数は合計要素数よりも多くなければなりませんが、私は1899 + 0 != 3599を持っています。
それはどうしてですか?
sqlite - "WHERE IN" (または AND、OR ステートメント) のネスト SQLite
user1 と user2 の 8 つの特定の組み合わせを取得する SELECT クエリが必要です (user2 と user1 の組み合わせも持つ価値があり、冗長ではありません)。「IN」ステートメントは価値があるように見えました。
直接関連する質問。1. "WHERE IN" ステートメントをネストできますか?
- そうでない場合、指定できるようにクエリを最も効果的/最も簡単に構造化するにはどうすればよいですか (user1 と user2 が位置を切り替える 4 つのペアの場合 - 8 つの組み合わせ):
(where user1 = billy AND user2 = sue) OR (where user1 = sue AND user2 =billy) OR (user1 = jack AND user2 = jill) OR (user1 = jill AND user2 = jack)
...etc ?
[この時点で、クエリを実行して関連情報を grep する方が簡単に思えます。]
現在の考え:
これを使用しましたが、関係のないデータが表示されます。
sql - ここで、SQL Serverクエリの更新番号は、あるフィールドから別のフィールドにリストされています
私はSQLServerを使用していますが、以下のクエリで懸念があります。リスト内の場所を実行すると、左側のフィールドが右側のフィールド(同じテーブルからのもの)で更新されるかどうかはわかりません。
等々...
リストの最初の番号を取り、フィールド値の設定に対処してから、リストの次の番号に移動すると思います。
私の期待は正しいですか?
前もって感謝します。