問題タブ [user-variables]
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を使用して他の場所について繰り返す方法は?
クエリ Aを使用して、1 つの場所から指定された距離内にある郊外のリストを取得します。
クエリ A を適応させて、location1 周辺の郊外のリストを取得し、次に location2 周辺の郊外のリストを取得するなどを試みています (これをクエリ Bと呼びます)。基本的に、クエリ B はクエリ A と同じことを行っていますが、別々の場所ごとに繰り返しています。私の質問 - MySQL のみを使用してこれを行うにはどうすればよいですか。これを行う方法に関する提案は大歓迎です。
これが私が扱っているデータのサンプルです。ここでSqlFiddle
私が試したこと
クエリ A - 単一の関心のあるポイントを囲む郊外を取得します
結果
上記のクエリは、関心のあるポイントの 1 つの場所を返します。
タムワース周辺の郊外のリスト。
MySQL ユーザー変数を使用してクエリ Bを作成しようとしましたがGROUP_CONCAT()
、FIND_IN_SET()
. アイデアは、配列を使用するように値を循環できるというものでした。ご希望があれば、前回の試みを投稿することもできますが、解決にはほど遠い状態です (試行不足のためではありません)。
更新:これは私の最後の試みの 1 つです。
クエリの望ましい結果 B.タムワース、バーミンガム、ロアノークの 3 つのポイントについて、これが期待される結果です。
MySQL を使用してこれを行う方法に関する提案は大歓迎です。
sql-server - SSIS 2012 - SQL 実行タスクと ForEachLoop コンテナーを使用して、xml ファイルをフォルダーから SQL Server テーブル COLUMN にロードします。
今日、クライアントが次のように尋ねる新しい状況があります。
フォルダーに XML ファイルがあります。これらのファイルを SQL Server テーブル列 (XML データ型) にロードする必要があります。XML 出力をさまざまな SQL Server テーブルにロードするのではなく、XML ファイル自体を SQL Server データベースの XML データ型を持つ列にロードします。
これは、クライアントの要件に従って、SSISでのみ行う必要があります。したがって、この方法で Execute SQL Task を使用します。(XML ファイルとは別に、、、などが必要ですImportDate
。FileName
)
接続の種類は OLE DB です。私が持っているSQLステートメントは次のとおりです。
これは、ファイルを 1 つだけハードコードする場合にうまく機能します。さて、C:\Mic\...\API_Schemas
フォルダーには多くの XML ファイルがあり、それぞれをロードする必要があります。それとは別に、それらのファイル ( ImportDate
. GETDATE()
INSERT ステートメント)。ForEachLoop コンテナーを使用し、SQL 実行タスクをこのコンテナー内に配置する必要があります。
したがって、この問題には 2 つの側面があります。
SQL 実行タスク内でファイル名をパラメータ化します。
ForEachLoop コンテナーを使用して (およびこの SQL 実行タスクを内部に配置して)、フォルダー内の各 XML ファイルを実行します。
Filename
(string datatype)という名前のユーザー変数を使用します。この値ABC.xml
には (フォルダー内の一連の XML ファイルの最初のファイル); 上記の TSQL クエリを次のようにパラメーター化します (以下を参照)。
このパラメーター ( ) を、この Execute SQL Task (タブ)?
のユーザー変数 Filenameにマップします。ParameterMapping
クエリは SQL 実行タスクで正しく解析されました! ただし、この SQL タスクを実行すると、次のエラーが発生します。
「パラメータ名が認識されません。」. 考えられる失敗の理由: クエリの問題、「ResultSet」プロパティが正しく設定されていない、パラメーターが正しく設定されていない、または接続が正しく確立されていない。
この状況は、XML ファイルから (データ アクセス モード (変数からの XML データ) などを使用して XML ソース エディターを使用して) SQL Server テーブルにデータを読み込む場合とはかなり異なります。この場合、XML ファイル自体を XML データ型を持つ SQL Server テーブル COLUMN にロードし、フォルダーからロードされたさまざまな XML ファイルに関する情報を取得します。その結果、変数を使用してこのパッケージを実行する方法がわかりません。
ファイル名を正しくパラメータ化する方法について、まず誰かが私を助けることができますか?
後で、フォルダーから各ファイルを読み取るように ForEachLoop コンテナーを構成する方法を教えてください。
このシナリオでユーザー変数を使用する方法について混乱しています。
mysql - ユーザー変数リストのテーブルのクエリ
次の問題があります:table1
複数の列col1
を持つテーブルがありますcol2
:
今、私はすべてのエントリが必要です- 私が使用col1
する 4 in のエントリcol2
:
これで、値の 1 つが に格納されてtable2
いる行を設定したい場所があります。このために私は使用します:col3
@col2fours
これはうまくいきません。私はすでに=
andhaving
の代わりにin
を使用してみGroup_concat
ました。これまでのところ、何もうまくいきませんでした。
データベースはサーバー上にあり、データベースへのアクセスを可能な限り減らしたいため、これを直接 mySQL で実行したいと考えています。実際の問題には、2 つよりも幾分多くのテーブルが含まれています ;)。ご意見ありがとうございます。
mysql - WHERE 句の MySQL ユーザー定義変数
通常の EMP,DEPT テーブル構成 (Oracle が提供する株式データ) では、次のクエリを解決する必要があります。
empno、ename、sal、job、deptno、および部門 10 または 20 に属するすべての従業員の経験をリストし、36 年から 40 年間、同じマネージャーの下でコミッションなしで働いています
次のクエリを思いつきました。
クエリが正しいか間違っているかに関係なく、このクエリを 2 回続けて実行すると、2 回目の実行 (およびその後のすべての実行) で結果が生成されません (最初の実行で結果が生成されます)。
StackOverflowでユーザー定義変数の質問を探しましたが、そのうちの1つだけ が答えましたが、探していたものではありませんでした。その投稿で、作者steampoweredは MySQL のドキュメントを引用しています。
原則として、ユーザー変数に値を割り当てたり、同じステートメント内で値を読み取ったりしないでください。期待どおりの結果が得られる可能性がありますが、これは保証されません。
もしそうなら、SELECT と WHERE 句で計算を繰り返さないようにするにはどうすればよいでしょうか?