从IndexDB中检索具有部分字符串匹配键的记录
Retrieve records having partial string match for a key from IndexDB
我有我的联系方式JSON对象存储在indexDB。有一个"birthdate"字段,以04/05/2014
(dd/mm/yyyy
)格式存储。
我只想通过匹配dd/mm
来检索记录。我想检索具有特定生日的所有联系人(无论年份)。
有很多方法可以做到这一点。你可以创建一个函数来解析
列中的dd/mm然后在where子句中写入@user_entry = dbo.fnc_GetDDMM(table.jsoncol)
函数可以利用索引和子字符串来提取DOB: DD/MM之后的任何内容在您提供的示例中,它可能看起来像
if object_id('dbo.GetBirthdayFromJson', 'fn') is not null
begin
print 'drop: dbo.GetBirthdayFromJson'
drop function dbo.GetBirthdayFromJson
end
go
print 'create: dbo.GetBirthdayFromJson'
go
create function dbo.GetBirthdayFromJson
(
@json varchar(500)
)
returns date
as
begin
--declare @json varchar(500) = '{name:"sac",birthdate:"04/05/2014"}',
declare @birthday date
declare @birthdaystring varchar(50) = 'birthdate:"'
declare @blen int = len(@birthdaystring)
declare @bindex int = charindex(@birthdaystring, @json)
set @birthday= substring(@json, @bindex + @blen, 10)
return @birthday
end
那么你的where可以像这样
select * --dont use '*' but just an example
from sometable as table
where datepart(month, dbo.GetBirthdayFromJson(table.jsoncolumn)) == @somemonth
and datepart(year, dbo.GetBirthdayFromJson(table.jsoncolumn)) == @someyear
希望能有所帮助
相关文章:
- 如何将字符串拆分为字符,但在javascript中保留空格
- 如何显示字符串中最多 200 个字符
- 我想在Javascript中探索类似C语言的字符串的整个字符
- 如何用jquery替换字符串中可能变化的字符
- 通过跳过拆分字符在 javascript 中拆分字符串
- 使用正则表达式匹配长度为六个字符的字母数字字符串
- 字符串替换-不支持格式字符'}'
- 到UpperCase字符串Javascript中的特定字符索引
- 用类javascript包装span标记中字符串中的字符索引
- 将字符串分组为n个字符的块,并应用替换
- 如何检查一个字符串的所有字符是否都存在于另一个字符串中
- 如何从键Code;中获取字符串/字符值;
- 检查值是否包含字符串字符
- JavaScript字符串字符操作
- 如果数组中的字符串不匹配,请从字符串中删除字符串字符
- Javascript Lingo游戏-字符串字符等于另一个字符串字符
- jQuery替换字符串字符的方法
- Javascript字符串字符检查
- Javascript替换字符串字符
- Javascript的变化与重复(组合)缺失的字符串字符