导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

如何让数据库中的字符串部分匹配查询字符串?

icansaymyabc 2015-10-27 06:04:30
如果是查询字符串短于或等于数据库中的字符串那很好办:

首端匹配
select * from tab where filed like 'string%'
尾端匹配
select * from tab where filed like '%string'
包含
select * from tab where filed like '%string%'

可是查询的字符串长于数据库中的字符串时该咋办?

比如用 stringbb 这个字符串进行首端匹配查询时,要把数据库中的这些字符记录都提出来:

string
stringb
stringbb
stringbbccdd
stringbbccddeeff

比如用 bbstring这个字符串进行尾端匹配查询时,要把数据库中的这些字符记录都提出来:
aaabbbstring
bbstring
bstring
string

比如用 aastringbb这个字符串进行包含匹配查询时,要把数据库中的这些字符记录都提出来:
string
astringb
astring
stringb
cccdddaastringbb
cccddeaastringbbeeffff
...全文
322 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
江南雪_158 2015-10-30
回复
qq_17482963 2015-10-28

with tm (code) as
(
select 'string' union all
select 'astringb' union all
select 'astring' union all
select 'stringb' union all
select 'cccdddaastringbb' union all
select 'cccddeaastringbbeeffff'
)
select * from tm where code like '%aastringbb%' or 'aastringbb' like '%'+code+'%'
试试这样符不符合你的要求
回复
icansaymyabc 2015-10-28
还是CSDN上高手多,问题就这么简简单单解决了
回复
shoppo0505 2015-10-27
你举的例子中,先要找出词根的所有数据行,在此词根为string, 然后再删除string+一个字符不匹配的,string+两个个字符不匹配的…….数据行。 一步得出结果的选取应该不行。 上面是一个思路,应该还有其它做法。
回复
icansaymyabc 2015-10-27
本人信誉好,分数多,若能解决,加分加到可以加的最高分结贴
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告