关于包含查询SQL语句

bigmingming 2015-03-24 03:47:20
ID 字段A
1 A-1,A-13,A-15
2 A-13,A-15

想查询A字段中只包含A-1的记录
即ID=1的记录
...全文
362 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2015-03-25
  • 打赏
  • 举报
回复
数据类型要统一啊。
字段是nvarchar的,查询中字符串用N'...'格式;假如是varchar的,就不加N前缀。
bigmingming 2015-03-25
  • 打赏
  • 举报
回复
谢谢,我实际字段中没有空格就是 A-11,A-12,B-11 等等这样的数据
还在加载中灬 2015-03-25
  • 打赏
  • 举报
回复
with t(ID,字段A) as
(select 1,N'A-1,A-13,A-15' union
select 2,N' A-13,A-15' union
select 3,N' A-1,A-15')
select * from t where charindex(N'A-15,',字段A+N',')<>0
这样试试
bigmingming 2015-03-25
  • 打赏
  • 举报
回复
和ID2, 3个ID中都含有A-15
bigmingming 2015-03-25
  • 打赏
  • 举报
回复
with t(ID,字段A) as (select 1,'A-1,A-13,A-15' union select 2,' A-13,A-15' union select 3,' A-1,A-15') select * from t where charindex('A-15,',字段A+N',')<>0 我用A-15去测试,查不到,包括A-15的记录ID1,ID3
还在加载中灬 2015-03-25
  • 打赏
  • 举报
回复
不行是什么意思呢? 报错?效果不对?效果不对就根据#8楼语句的结果,改一下想要的结果,贴上来看下
bigmingming 2015-03-25
  • 打赏
  • 举报
回复
with t(ID,字段A) as (select 1,'A-1,A-13,A-15' union select 2,' A-13,A-15' union select 3,' A-1,A-15') select * from t where charindex('A-15,',字段A+N',')<>0 还是不行
Tiger_Zhao 2015-03-25
  • 打赏
  • 举报
回复
统一标点。
SELECT *
FROM table1
WHERE CHARINDEX(N'A-1,',
REPLACE(字段A,N',',N',') + N','
) <> 0
oraclecaicai 2015-03-25
  • 打赏
  • 举报
回复
估计是两种逗号都有,OR一下吧~
AHUA1001 2015-03-25
  • 打赏
  • 举报
回复
SELECT * FROM 表名 WHERE FIND_IN_SET('A-1',字段A) 注意,字段A,必须是以英文逗号分隔。
还在加载中灬 2015-03-24
  • 打赏
  • 举报
回复
引用 4 楼 bigmingming 的回复:
with t(ID,字段A) as (select 1,'A-1,A-13,A-15' union select 2,' A-13,A-15' union select 3,' A-1,A-15') select * from t where charindex('A-15,',字段A)>0 这个就不行
那1楼是可以的啊,为啥你在2楼说不行
bigmingming 2015-03-24
  • 打赏
  • 举报
回复
with t(ID,字段A) as (select 1,'A-1,A-13,A-15' union select 2,' A-13,A-15' union select 3,' A-1,A-15') select * from t where charindex('A-15,',字段A)>0 这个就不行
江南小鱼 2015-03-24
  • 打赏
  • 举报
回复
引用 楼主 bigmingming 的回复:
ID 字段A 1 A-1,A-13,A-15 2 A-13,A-15 想查询A字段中只包含A-1的记录 即ID=1的记录

with t(ID,字段A) as
(select 1,'A-1,A-13,A-15' union
select 2,' A-13,A-15')
select * from t where charindex('A-1,',字段A)>0
bigmingming 2015-03-24
  • 打赏
  • 举报
回复
好象不行 A字段 A-13 A-1,A-11 A-13 92,A-13 A-1 A-1,A-13,A-17
Tiger_Zhao 2015-03-24
  • 打赏
  • 举报
回复
加上逗号查询
SELECT *
FROM table1
WHERE CHARINDEX(N'A-1,', 字段A+N',') <> 0

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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