mysql - XML 数据类型的搜索查询

标签 mysql sql sql-server xml sql-server-2008

我有一个要求,我想搜索 xml 数据类型的数据,从前端我会得到名字,姓氏,出生日期,电子邮件所有字段都不是强制性的,有些字段会显示为空或 null 我想根据该搜索,如果我将名字作为“测试”,将姓氏作为空或空

如果它是 varchar 数据类型,那么我可以将查询创建为

FirstName= ISNULL(@firstname, FirstName) or COALESCE(@firstname, FirstName, '') = '')

但在 XML 文档中我如何使用这种类型的查询。

xmlDoc.value('(/personalDetails/firstname)[1]','varchar(100)')

谢谢

最佳答案

在 SQLServer 2008 中,我会这样写:

select 
    xmlDoc.value('(personalDetails/firstname/text())[1]','varchar(100)') as firstname 
from 
    myTable 
where 
    not xmlDoc is null
    and xmlDoc.exist('personalDetails/firstname[.!='''']')>0

如果您想为不存在的值返回 NULL,您也可以执行 CASE WHEN ... ELSE ... END

关于mysql - XML 数据类型的搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10087016/

相关文章:

sql - 需要有关 SQL 中复杂排序的帮助

c# - 如何在 C# 中使用 mysql?

php - 在 PHP 中使用数组更新表字段

java - Worklight、Java SQL 适配器、适配器部署失败

sql - 将 value = NULL 的新键添加到现有的 JSON 对象

sql - 从 Access 迁移到 SQL Server

mysql - 无法通过 XAMPP 连接到 MySQL

php - 如何自动同步mysql数据库和solr

sql - ORA-00036 : maximum number of recursive SQL levels (50) exceeded after configuring toplink to use bind variables

sql-server - 如何从 Mac OS X 终端使用 MS SQL Server?