sql如何查询数据库中包含多个关键字的字段

qxzhu 2016-12-07 08:04:01
数据库中有一个字段:gjc
该字段保存数据为 “,”分隔的多个关键字,如: A型,B型,即如下所示:
ID gjc
1 A型,B型
2 A型,C型
3 A型
4 B型
给定一个字符串,如,张三购买了A型和B型
希望得到的结果是ID =1;
如何写搜索语句,在线的大侠帮帮忙。
假设表名为table1,待搜索字符串为strSource
...全文
4609 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhwg1224 2016-12-18
  • 打赏
  • 举报
回复
书库字段这样定义就不太健康。。。
江南小鱼 2016-12-14
  • 打赏
  • 举报
回复

declare @strSource varchar(50)
create table table1(ID int,gic varchar(50))
insert into table1
select 1 ID,'A型,B型' gic
union
select 2,'A型,C型'
union
select 3,'A型'

set @strSource = 'A型,B型'
select * from table1 where charindex(@strSource,gic) > 0
闭包客 2016-12-13
  • 打赏
  • 举报
回复
不过你的需求并不是模糊搜索。 标准的做法是遵守第一范式,一个字段只保存一个值。 也就是型号保存在另外一个表,有多少个型号就有多少行。
闭包客 2016-12-13
  • 打赏
  • 举报
回复
搜索的话,快速的做法就是使用 like 优质的做法是做倒排索引。
Locqi 2016-12-13
  • 打赏
  • 举报
回复
select * from table where 你的字段 like '%A%B%'
yaojunyi3721 2016-12-09
  • 打赏
  • 举报
回复
要发帖问问题没分用了 好心人给几分吧
X-i-n 2016-12-07
  • 打赏
  • 举报
回复
看上去你的查询条件是严格匹配关系?直接手工按状态值拼出字符串,再查询 把A型和B型,转为 'A型,B型' 然后select就行了

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧