Select xml 字段中的值 mysql
Select value in xml field with mysql
我在 sulu cms 数据库中有一个字段。
Table phpcr_nodes 和场地道具
此字段在 XML 中存储如下:
<?xml version="1.0" encoding="UTF-8"?>
<sv:node xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:mix="http://www.jcp.org/jcr/mix/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:rep="internal" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<sv:property sv:name="i18n:en-description" sv:type="String" sv:multi-valued="0">
<sv:value length="2560">MY FIRST ITEM</sv:value>
</sv:property>
<sv:property sv:name="i18n:en-subtitle" sv:type="String" sv:multi-valued="0">
<sv:value length="28">MY SECOND ITEM</sv:value>
</sv:property>
</sv:node>
我要抓值
<sv:value length="2560">MY FIRST ITEM</sv:value>
和
<sv:value length="28">MY SECOND ITEM</sv:value>
我试过这样的方法:
SELECT
SUBSTRING_INDEX(ExtractValue(props, '//sv:name="i18n:en-subtitle"'), ' ', 1) AS `subtitle`
from phpcr_nodes
这是一个MySQL数据库,我怎样才能得到SQL中的值?
提前致谢
如果您需要向 PHPCR 写入查询,您应该使用角兔抽象及其查询生成器,这样您就可以编写正常的 SQL2 个查询,角兔会根据您的适配器将它们转换为正确的 SQL 查询.
如果您对角兔如何将 SQL 2 查询转换为 SQL 查询感兴趣,请查看其 QOMWalker 实现:
EXTRACTVALUE(props, '//sv:property[@sv:name="i18n:en-subtitle"]/sv:value')
“EXTRACTVALUE”是一个 XPATH,因此您也可以将 XML 复制到 http://xpather.com/ 之类的网站中,为您的 属性 选择找到正确的 xpath。
我在 sulu cms 数据库中有一个字段。
Table phpcr_nodes 和场地道具
此字段在 XML 中存储如下:
<?xml version="1.0" encoding="UTF-8"?>
<sv:node xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:mix="http://www.jcp.org/jcr/mix/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:rep="internal" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<sv:property sv:name="i18n:en-description" sv:type="String" sv:multi-valued="0">
<sv:value length="2560">MY FIRST ITEM</sv:value>
</sv:property>
<sv:property sv:name="i18n:en-subtitle" sv:type="String" sv:multi-valued="0">
<sv:value length="28">MY SECOND ITEM</sv:value>
</sv:property>
</sv:node>
我要抓值
<sv:value length="2560">MY FIRST ITEM</sv:value>
和
<sv:value length="28">MY SECOND ITEM</sv:value>
我试过这样的方法:
SELECT
SUBSTRING_INDEX(ExtractValue(props, '//sv:name="i18n:en-subtitle"'), ' ', 1) AS `subtitle`
from phpcr_nodes
这是一个MySQL数据库,我怎样才能得到SQL中的值?
提前致谢
如果您需要向 PHPCR 写入查询,您应该使用角兔抽象及其查询生成器,这样您就可以编写正常的 SQL2 个查询,角兔会根据您的适配器将它们转换为正确的 SQL 查询.
如果您对角兔如何将 SQL 2 查询转换为 SQL 查询感兴趣,请查看其 QOMWalker 实现:
EXTRACTVALUE(props, '//sv:property[@sv:name="i18n:en-subtitle"]/sv:value')
“EXTRACTVALUE”是一个 XPATH,因此您也可以将 XML 复制到 http://xpather.com/ 之类的网站中,为您的 属性 选择找到正确的 xpath。