ホームページ >データベース >mysql チュートリアル >SQL を使用して XML データから属性値を抽出するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。