Вы можете найти следующий запрос, который используется для поиска ключевых слов в столбце XML базы данныхXQuery - Поиск в XML-столбец в таблице
Показанная запрос используется для поиска по имени, слова или краткое из XML в SQL Server. Используемая CMS - Umbraco.
Запрос был спроектирован первоначально, когда данные были ограничены.
В настоящее время база данных содержит миллионы записей и время запроса не позволяет получить данные. Запрос также определяет приоритетность порядок, в котором результаты поиска будут получены в , если результат поиска данных Имя поля возвращается Случай 1 возвращается еще в зависимости от поиска данных возвращается
SELECT Name,word,brief, */Selecting Values */
CASE
WHEN Name like '%' THEN 1 */Prioritizing Order in which data to be seen */
WHEN word like '%' THEN 2
WHEN brief like '%' THEN 3
END AS Search
from
(select
A.xml.value('(//@node)[1]','nvarchar(20)') as Name, /* XQuery */
A.xml.value('(//word)[1]','nvarchar(225)') as word,
A.xml.value('(//brief)[1]','nvarchar(max)')as brief
from
(Select Convert(xml, xml) AS XML
from [dbo].[cmsContentXml]) AS B
Cross Apply xml.nodes('//items/item') AS A(xml)) D
where ((Name like '%') /*Condition */
OR(word like '%')
OR(brief like '%'))
group by word,Name,brief
order by 3 ASC
Пожалуйста, помогите с решение по оптимизации или перезаписи этого запроса для поиска данных в столбце xml. Кроме того, помимо получения данных из столбца.
Если на лицевой стороне кнопка поиска нажата без ввода какого-либо ключевого слова, операция клика должна извлекать все элементы из базы данных.
Заранее спасибо
Покажите нам, как может выглядеть ваш XML! –
Я не могу получить доступ к базе данных из того места, где я нахожусь. Столбец xml, на который я ссылаюсь, так же создается по умолчанию Umbraco CMS «cmscontentxml» - это имя таблицы. – Gallop
Без XML-документа оптимизировать нечего. Пожалуйста, предоставьте XML-документ (типичный пример), чтобы сделать этот вопрос значимым. –