Я использую postgres.Мои данные в формате XML.Я хочу написать запрос для получения соответствующей записи.Запись может быть в любом дочернем элементе.Мне нужно использовать результат XPath в запросе.
Пример данных:
<book category="Cooking">
<title lang="en">XQuery Kick Start</title>
<author>Leonard Richardson</author>
<author>Sam Ruby</author>
<year>2007</year>
<price>58.33</price>
</book>
Запрос 1:
SELECT id, xmldata
FROM tblprofile AS a
WHERE 'Sam Ruby' = CAST((xpath('/book/author/text()', xmldata))[1] AS TEXT)
Это не принесло никакого результата.
Запрос 2:
SELECT id, xmldata
FROM tblprofile AS a
WHERE 'Leonard Richardson' = CAST((xpath('/book/author/text()', xmldata))[1] AS TEXT)
извлекает результат, когда вышеуказанный запрос соответствует первой записи.Как сделать так, чтобы запрос 1 работал?Как искать во всех дочерних узлах?