gpt4 book ai didi

MySQL xml 与列数据比较

转载 作者:行者123 更新时间:2023-11-29 02:24:25 26 4
gpt4 key购买 nike

假设您有一个表“城市”,如下所示:

Id | CodeNumber | CityXml

并且您在 CityXml 列中存储了以下 xml

<record>
<data code="10">istanbul</data>
<data code="20">madrid</data>
</record>

并且您想获取代码为 10 的城市的名称。为此,您可以这样写:

SELECT 
ExtractValue(Cities.CityXml, '/record/data[code="10"][1]') AS CityName
FROM Cities

这很好用。当从表的另一列给出代码时,我的问题就开始了:

/* this does not work */
SELECT
CodeNumber,
ExtractValue(Cities.CityXml, '/record/data[code="CodeNumber"][1]') AS CityName
FROM Cities

在SQL Server中,可以编写如下语句:

SELECT 
CodeNumber,
ExtractValue(Cities.CityXml, '/record/data[code=sql:column("CodeNumber")][1]') AS CityName
FROM Cities

但是你怎么能在 MySQL 中写这个呢?

最佳答案

使用 CONCAT 构建 XPath 字符串

SELECT CodeNumber,
EXTRACTVALUE(Cities.City, CONCAT('/record/data/[code="', CodeNumber, '"][1]') AS CityName
FROM Cities

关于MySQL xml 与列数据比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25533633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com