当前位置: 首页 > 面试题库 >

使用LIKE或类似的完整搜索操作搜索XML

樊奇思
2023-03-14
问题内容

我想搜索一个XML值列,看是否包含一个字符串。我不知道架构,我想知道字符串是否包含在任何地方。我不知道XPATH是否可以在这种情况下工作。

相当于

Select s.Name, ts.ValueXML from table t (nolock) 
join table2 ts (nolock) on t.key_Id = ts.key_Id
join table3 s (nolock) on ts.key_Id=s.key_Id
where s.Name like '%Lab%' and ts.ValueXML  like '%PreviewDateRange%'

错误:参数数据类型xml对于同类函数的参数1无效。

相关ts表格列

ValueXml (XML(.), null)

我要搜索的项目应该是一个属性。因此,如果上述方法不可能实现,那么包含该属性的任何内容都将是一个不错的选择。


问题答案:

最简单(但绝对不是最快执行)的方法是在将列传递给nvarchar(max)之前将其强制转换为like

cast(ValueXml as nvarchar(max)) like '%PreviewDateRange%'


 类似资料:
  • 呃……这个项目如果没有什么特别之处就不叫 elasticsearch 了!现在一起来聊聊客户端的搜索操作。 在命名方案规范的前提下,客户端拥有一切的查询权限,也拥有获取 REST API 公开的一切参数的权限。现在来看看一些示例,方便你熟悉这些语法规则。 Match查询 以下是 Match 查询的标准 curl 格式: curl -XGET 'localhost:9200/my_index/my_

  • 搜索过程是Lucene提供的核心功能之一。 下图说明了该过程及其用途。 IndexSearcher是搜索过程的核心组件之一。 我们首先创建包含indexes ,然后将其传递给IndexSearcher ,后者使用IndexReader打开Directory 。 然后我们使用Term创建一个Query ,并通过将Query传递给搜索器来使用IndexSearcher进行搜索。 IndexSearch

  • 问题内容: 我只是从ElasticSearch开始,然后尝试基于它来实现自动完成功能。 我有一个带有type 字段的索引。这是存储在该索引中的文档的示例: 分析配置如下所示: 映射: 我将以下查询发送到ES: 结果,我得到以下信息: 在大多数情况下,它是有效的。在用户必须实际键入整个单词之前,它确实找到了带有的文档(足够了)。 这就是我的问题。我也希望它返回。要获取,我需要发送以下查询: 注意那里

  • 问题内容: 我已经成功实现了Ignited-Datatables。但是,在输入“非拉丁”字符(如“İ,ş,ğ,..”)时使用数据库进行搜索时 详细信息是: 部件会根据您键入的非拉丁字符而变化。 有解决的办法吗? 问题答案: 我解决了这个问题。似乎是DATETIME字段导致了问题。 给出错误。当我删除局部字段时,再也没有错误。我希望这有帮助。

  • 我有一个记录数据库,每个记录都有一个右和一个左字段,这两个字段都包含文本。数据库使用Elasticsearch建立索引。 我想搜索这些记录的两个字段,并找到在任何字段中包含两个或更多带有特定前缀的单词的记录。搜索应该足够具体,以便只查找包含查询中所有单词的记录,而不仅仅是其中的一些单词。 例如,qui bro查询应该返回包含“敏捷的棕色狐狸跳过了懒惰的狗”这句话的记录,而不是包含“敏捷的狐狸跳过了

  • 我一直在尝试使用Java的二分搜索方法在单词数组(一个词典)中搜索一个特定的字符串,然后确定该字符串是单词、前缀还是不是单词。如果返回的索引大于或等于零,则字符串为单词。如果返回的索引小于零,那么我必须确定它不是一个单词,还是一个前缀。