ホームページ >データベース >mysql チュートリアル >SQL を使用して XML データから属性値を抽出するにはどうすればよいですか?

SQL を使用して XML データから属性値を抽出するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-20 13:44:10665ブラウズ

How Can I Extract Attribute Values from XML Data Using SQL?

SQL で XML データから属性値を取得する

データベース テーブルで XML データを操作する場合、値を取得する必要がある場合があります。 XML コンテンツ内の特定の属性。考えられる課題の 1 つは、データが XML データ型として保存されている場合に属性の値を抽出することです。

XML データ形式

データベースに保存されている次の XML スニペットを考えてみましょう。 :

<email>
  <account language="en" ... />
</email>

属性のクエリValue

「言語」属性の値を取得するには、SQL ステートメント内で XQuery を利用できます。 XQuery は、XML データのクエリと処理のために特別に設計された XML クエリ言語です。

XQuery 式

次の XQuery 式は、XML データから「言語」属性の値を取得します。 XML データ:

/email/account/@language

SQLクエリ

SQL クエリに XQuery 式を組み込むと、次のように属性値を取得できます。

declare @xml xml =
'<email>
  <account language="en" />
</email>'

select @xml.value('(/email/account/@language)[1]', 'nvarchar(max)')

追加の例

複数の XML を含む「@t」という名前のテーブルがあるとします。 rows:

insert @t values 
    ('<email><account language="en" /></email>'), 
    ('<email><account language="fr" /></email>')

各行から属性値を抽出するには、次のクエリを実行できます。

select m.value('(/email/account/@language)[1]', 'nvarchar(max)')
from @t

Output

上記のクエリの出力は属性値のリストになります:

en
fr

以上がSQL を使用して XML データから属性値を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。