問題タブ [sql-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.
sql - SQLのEXISTSとINの違いは?
EXISTS
SQLのandIN
句の違いは何ですか?
いつ使用する必要がEXISTS
あり、いつ使用する必要がありますIN
か?
php - mysqli の準備済みステートメントで IN 句を使用する方法
準備済みステートメントを使用して古いコードを新しい msqli インターフェイスに移動しています。IN 句を含む SQL ステートメントに問題があります。私は通常これを行います:
これをmysqliと準備済みステートメントに変換して、いくつかの解決策を試しました:
上記は失敗し、配列内の要素数の計算、SQL 文字列内の疑問符の数の変更、および配列内の各要素に対する bind_parm の呼び出しも失敗します。コンマ区切りの文字列を使用するだけでも失敗します。
Google でこれに関する適切なドキュメントを見つけることができないので、どのように問題を解決しましたか?
sql - ネイティブ SQL クエリでの IN 句の使用
JPA エンティティを返すために、ネイティブ SQL クエリの IN 句を動的に生成しようとしています。Hibernate は JPA プロバイダーです。コードは次のようになります。
これは機能しません。 in 句は、この方法で渡された値を認識しません。この問題の解決策を知っている人はいますか?
sql - IN 値リストの ORDER BY
PostgreSQL 8.3 には、多数のコメントを取得する単純な SQL クエリがあります。句の構造に値の並べ替えられたリストを提供します。IN
WHERE
これは、たまたま のような ID である任意の順序でコメントを返します1,2,3,4
。
結果の行をコンストラクトのリストのように並べ替えたいIN
: (1,3,2,4)
.
それを達成する方法は?
sql - カンマ区切り値でいっぱいのvarcharをSQLServerIN関数に渡す
varchar
カンマ区切りの値でいっぱいの値を関数に渡したいSQLServerストアドプロシージャがありIN
ます。例えば:
もちろん、これは機能しません。エラーが発生します:
varchar値「1,2,3,5,4,6,7,98,234」をデータ型intに変換するときに変換に失敗しました。
動的SQLの構築に頼らずに、これ(または比較的類似したもの)をどのように達成できますか?
sql-server - SQLServerINとEXISTSのパフォーマンス
次のうちどれがより効率的でしょうか?
IN
SQL Serverが結果セットを大きなIF
ステートメントに変えると信じているので、私は常に使用について少し慎重でした。結果セットが大きい場合、パフォーマンスが低下する可能性があります。結果セットが小さい場合は、どちらが望ましいかわかりません。大きな結果セットの場合、EXISTS
より効率的ではないでしょうか?
対。
mysql - mysqlは、結果の順序がIN句の順序と一致することを強制します
この質問は、IN句による最終結果の順序付けに関してよく寄せられる質問とは異なります。
IN句を含むクエリによって返される結果を、IN句の順序と一致させるように強制したいと思います。
これは私が取り組んでいる元の質問です。
以下のクエリを変更して、テーブルを。で並べ替えるときに、を含む行がそれぞれのprogress=2
前progress=4
とprogress=7
ごとに発生するようにします。session_id
formation_page_hits
datetime
現在のクエリは次のとおりです。
これらのエントリ
クエリに一致する必要がありますが、次のようになります。
一致するべきではありません。
さらに:
一致する必要があります。
sql - Hibernate3.2.2を使用したネイティブSQLクエリでのIN句の使用
ここにある質問と同様の方法で:ネイティブSQLクエリでIN句を使用します。IN()
HibernateのネイティブSQLクエリを使用して句を利用しようとしています。他の質問の作成者はJPAを使用できましたが、私は使用できません。さらに、私はバージョン3.2.2で立ち往生しています。
IN()
クエリパラメータを適用するときにIDのリスト(長いプリミティブの配列)をバイナリ形式に変換しようとしているため、Hibernateはネイティブにサポートしていないようです。query.setParameter("publisherGroups", [1243536264532,1243536264533,1243536264535]);
Hibernateから:
SELECT
sum(C2CReportedConversion) as c2CConversion,
sum(C2CReportedRevenue) as c2CRevenue,
sum(I2CReportedConversion) as i2CConversion,
sum(I2CReportedRevenue) as i2CRevenue,
sum(Clicks) as clicks,
sum(Impressions) as impressions,
sum(Requests) as requests,
sum(Views) as views,
coalesce(Name,
DisplayName)
FROM
UiTemplateReportingCache
JOIN
AdUnit USING (AdUnitId)
WHERE
PublisherId = ?
AND PublisherGroupId IN (
?
)
AND Date >= ?
AND Date <= ?
GROUP BY
coalesce(Name,
DisplayName)
mysqlログから:
SELECT sum(C2CReportedConversion) as c2CConversion, sum(C2CReportedRevenue) as c2CRevenue, sum(I2CReportedConversion) as i2CConversion, sum(I2CReportedRevenue) as i2CRevenue, sum(Clicks) as clicks, sum(Impressions) as impressions, sum(Requests) as requests, sum(Views) as views, coalesce(Name, DisplayName) FROM UiTemplateReportingCache JOIN AdUnit USING (AdUnitId) WHERE PublisherId = 1239660230591 AND PublisherGroupId IN (_binary'��\0ur\0[Jx ��u�\0\0xp\0\0\0
\0\0!���T\0\0!���U\0\0!���W\0\0!���m\0\0!���n\0\0!���t\0\0!���{\0\0!���|\0\0!���}\0\0!���~\0\0#��\0\0$|��S') AND Date >= '2011-03-17 00:00:00' AND Date <= '2011-03-18 23:59:59' GROUP BY coalesce(Name, DisplayName)
値_binary
を開始する部分に注意してください。IN()
これを機能させる秘訣は何ですか?私が使用しているHibernateのバージョンもこれを実行しますか?そうでない場合、どのような選択肢がありますか?
前もって感謝します、
カール
mysql - PDO "IN" クエリの一部として配列を使用するのが難しい
配列を使用して MySQL データベースをクエリしようとしています。
エラー メッセージは表示されず、結果は 0です。どんな助けでも大歓迎です!