求模糊查询一条~

夜色镇歌 2012-03-01 02:41:24

select * from Scenic where SortID like in (select id from XXXX);


这句肯定是错的... 我想知道对的怎么写...
...全文
93 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
夜色镇歌 2012-03-01
  • 打赏
  • 举报
回复
','+ltrim(id)+','是不是应该改为ltrim(id)+',' ???
夜色镇歌 2012-03-01
  • 打赏
  • 举报
回复
','+ltrim(id)+','的话
假如
id 是 1 2 3
sortid 是 1,21
如果模糊查询 1
他找的岂不是 ,1, 在
sortid 里面确是 1,
会不会查不到啊
[Quote=引用 7 楼 a346729576 的回复:]

你真好引用 6 楼 acherat 的回复:

0.0 我错了,去小忙了下。

charindex 是看字符串1在字符串2中存在的为止,不存在返回0,可以看看函数的介绍

至于 ','+ltrim(id)+',' 和后边的 ','+t.sortid+',' 是为了避免模糊查询时数据多查的问题,例如

id 是 1 2 3

sortid 是 1,21

如果直接 cha……
[/Quote]
夜色镇歌 2012-03-01
  • 打赏
  • 举报
回复
你真好[Quote=引用 6 楼 acherat 的回复:]

0.0 我错了,去小忙了下。

charindex 是看字符串1在字符串2中存在的为止,不存在返回0,可以看看函数的介绍

至于 ','+ltrim(id)+',' 和后边的 ','+t.sortid+',' 是为了避免模糊查询时数据多查的问题,例如

id 是 1 2 3

sortid 是 1,21

如果直接 charindex(ltrim(id),sortid) 那……
[/Quote]
AcHerat 元老 2012-03-01
  • 打赏
  • 举报
回复
0.0 我错了,去小忙了下。

charindex 是看字符串1在字符串2中存在的为止,不存在返回0,可以看看函数的介绍

至于 ','+ltrim(id)+',' 和后边的 ','+t.sortid+',' 是为了避免模糊查询时数据多查的问题,例如

id 是 1 2 3

sortid 是 1,21

如果直接 charindex(ltrim(id),sortid) 那么id是2的在sortid中也是存在位置的,返回3大于0,但 ,2, 在sortid中是没有位置的,避免21中的2匹配到id为2的数据。
夜色镇歌 2012-03-01
  • 打赏
  • 举报
回复
大神 敢问这是神马意思
select 1 from XXXX where charindex(','+ltrim(id)+',',','+t.sortid+',') > 0
[Quote=引用 3 楼 acherat 的回复:]

SQL code

select * from Scenic t
where exists (select 1 from XXXX where charindex(','+ltrim(id)+',',','+t.sortid+',') > 0)
[/Quote]
AcHerat 元老 2012-03-01
  • 打赏
  • 举报
回复

select * from Scenic t
where exists (select 1 from XXXX where charindex(','+ltrim(id)+',',','+t.sortid+',') > 0)
夜色镇歌 2012-03-01
  • 打赏
  • 举报
回复
SortID 里面存的字符串 逗号隔开的 你懂得..[Quote=引用 1 楼 acherat 的回复:]

like 去掉
[/Quote]
AcHerat 元老 2012-03-01
  • 打赏
  • 举报
回复
like 去掉

34,593

社区成员

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

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