SQL中,如何判断某一个字段的值中含有某特定字符串?

武汉星云信软件 2007-06-05 11:15:25
如表中有一个字段存储的值为(asp.net,C#,ajax,php)
我如何查到该字段中含有C#的行?
举例:
TableA
FieldID,FieldA,FieldB
1,(asp.net,C#), fieldBcontent1
2,(ajax,C#), fieldBContent2
3,(ajax,php),fieldBContent3
我要得到FieldA中含有C#的行.得到的结果应该为ID为1,2的两行数据.
SQL如何写?
...全文
8505 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fcuandy 2008-11-23
  • 打赏
  • 举报
回复
如果只是查有无出现c#这个字符,那么上面的方法都适用。


如果是查是否有出现c#这个元素,也不如楼上说的那么麻烦

where charindex(',c#,',',' + col + ',')>0


当然,也可改用patindex,like等,同样加前后辍。
frankqnj 2008-11-23
  • 打赏
  • 举报
回复
我觉得 楼上几位的方法思路是对的
但对于楼主的需求 却有些应付不来
如果存在 C#1,1C#, 仍然会认为是 存在C#

2种解决办法是

1 数据让他都这样 ,asp.net,c#,php, 前后都加, 然后 找,C#,

得出的数据 ,asp.net,c#,php, 在用split(',') 时 仍然会得到想要的数组

第二种就是 在sqlserver 创建个 split函数 用临时表的方式 做校验 比较麻烦 不可取.

冷箫轻笛 2007-06-05
  • 打赏
  • 举报
回复
select * from tablea where FieldA like '%c#%'
肥胖的柠檬 2007-06-05
  • 打赏
  • 举报
回复
select * from TableA where PATINDEX('%C#%',FieldA)>0 --看错列
dawugui 2007-06-05
  • 打赏
  • 举报
回复
select * from tb where charindex('C#',fieldA) > 0
肥胖的柠檬 2007-06-05
  • 打赏
  • 举报
回复
TableA
FieldID,FieldA,FieldB

select * from TableA where PATINDEX('%C#%',FieldID)>0

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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