新手求一SQL语句,,很简单,求助,,,壮士请留步...

wxf0104 2012-04-18 08:15:16
变量aa=23;数据表中某一字段名为aaa,内容如23;33;43;23

意思就是如果aa=23时,查出这条记录,,,假如,aa=33也可以查出来,aa=2,,,,aa=3,,这样就查不到,,,就是aa的值必须等于;(分号隔开)前后的某一完整数字,才可以查询出这条记录


请问这条sql语句如何写啊?


新手求助,,,,,,
...全文
266 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxf0104 2012-04-21
  • 打赏
  • 举报
回复
楼上的兄弟,按Chinajiyong的写法不对啊,,,,,这里的aaa是字段名啊
BD7CE 2012-04-19
  • 打赏
  • 举报
回复
同意 hhwolf76。
用charindex实际上就是like的另一种写法,实质一样。
EnForGrass 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 4 楼 的回复:

SQL code
create table #temp(name varchar(20))
insert into #temp values('23;33;43;23')

declare @str int
set @str=33
select * from #temp where charindex(';'+cast(@str as varchar(……
[/Quote]
程序里这么写

string aa = "23";
string sql = @"select * from tb where charindex(';'+'" + aa + "'+;',';'+aaa+';')>0";
wxf0104 2012-04-19
  • 打赏
  • 举报
回复
谢谢楼上的老兄,,,,还有没有更简洁,实用的方法啊?
wxf0104 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

引用 6 楼 的回复:

引用 4 楼 的回复:

SQL code
create table #temp(name varchar(20))
insert into #temp values('23;33;43;23')

declare @str int
set @str=33
select * from #temp where charindex(';'+cast(……
[/Quote]


老兄,不对啊,,,没反映啊,,,,,,我这里的aaa是字段名啊,,,,
hhwolf76 2012-04-19
  • 打赏
  • 举报
回复
string aa=23;

string sql_cx="select * from tb where aaa like '%;"+aa+";%' or aaa like '%;" + aa + "' or aaa like '" + aa + ";%'";
hhwolf76 2012-04-19
  • 打赏
  • 举报
回复
这样如果aa=2或者3不也可以查出来

[Quote=引用 7 楼 的回复:]

我现在用的是like好象也能查出来

string aa=23;

string sql_cx="select * from tb where aaa like '%"+aa+"%'";


此处aaa是字段名称,,内容如:23,33,43,25


......



但感觉不太对,,,,


顶起.....
[/Quote]
wxf0104 2012-04-18
  • 打赏
  • 举报
回复
我现在用的是like好象也能查出来

string aa=23;

string sql_cx="select * from tb where aaa like '%"+aa+"%'";


此处aaa是字段名称,,内容如:23,33,43,25


......



但感觉不太对,,,,


顶起.....



wxf0104 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

SQL code
create table #temp(name varchar(20))
insert into #temp values('23;33;43;23')

declare @str int
set @str=33
select * from #temp where charindex(';'+cast(@str as varchar(20))+';',';'+name+';'……
[/Quote]


大侠,,,我在页面上怎么写啊?


select * from tb where charindex(';'+aa+';',';'+aaa+';')>0

aa是个变量,aaa是这个表中的字段名,,,,好象不对啊,,,,,,,
wxf0104 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

不懂你的意思啊
[/Quote]

一个表字段aaa的内容是一个数组,如:23;33;54;23,,,,有个查询条件(变量)aa=23,意思是:想查出这个表里aaa字段这个字段数组中有23的所有记录,,,一定是分号前后完整的数,不能是2或3也能查出来,,,,,,记得好象是在sql语句中用个分号分割的,,但写法记不得了,,,,,,求解,,,


能明白不?
huangwenquan123 2012-04-18
  • 打赏
  • 举报
回复
create table #temp(name varchar(20))
insert into #temp values('23;33;43;23')

declare @str int
set @str=33
select * from #temp where charindex(';'+cast(@str as varchar(20))+';',';'+name+';')>0
tyang258 2012-04-18
  • 打赏
  • 举报
回复
用个分割字符串去查
No4000 2012-04-18
  • 打赏
  • 举报
回复
你这个为什么要这么写?


SELECT * FROM [TB] WHERE aaa IN(2, 3);
qzp000000 2012-04-18
  • 打赏
  • 举报
回复
不懂你的意思啊

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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