模糊查询问题sql like 语句

fuillusion 2009-05-12 11:39:41
带参的sql like 语句怎么写,高手指点?
以下是我写过的两种都为:
一.
(存过程)
select * from tablename
where name like %@name%
使用这种无法查询到任何数据
二.
(存过程)
select * from tablename
where name like @name
然后在页面中是这样传值的
cmd.parameter.add("@name",SqlDataType.varchar).value="%"+name+"%";
这种方式也法达到效果,而是出现了一个奇怪的现象.
那就是,当你输入的关键字与要查询字段数据的长度达到比列时,出能查出数据,否则查不任何数据.
...全文
762 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
fuillusion 2009-05-13
  • 打赏
  • 举报
回复
ls的正解,ls的其实我看了你在11楼发的贴,而且也照着你的方法运行了,只不过我在我的sql语句中少写了一个like关键字一时没注意到.在这里谢谢给各位的帮助.结贴了!
vip_hjb 2009-05-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mengxj85 的回复:]
存储过程
SQL codeselect * from tablename
where name like ''%'+@name
[/Quote]



顶个!
我姓区不姓区 2009-05-13
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 fuillusion 的回复:]
引用 16 楼 a82344626 的回复:
引用 10 楼 hsnhsn0916 的回复:
引号没加

正解
这是用字符串连接起来的

现在我加了引号,还是无法查询出数据来
sql语句如下:
create procedure sbcs_getProductByKey
@keyword char(20)
as
select ProName, ProId,ProPrice,UserName from Product_Tab,User_Tab
where User_Tab.UserId=Product_Tab.UserId and ProName like '''%'+@keyword+'%'''
go
这个没有语法错误,但就是查询不…
[/Quote]

你看我在11楼给你的回复了吗?真不明白咋那么多人都是有选择性的看帖呢
pathuang68 2009-05-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mengxj85 的回复:]
太急了,没测试

SQL code
select * from tablename
where name like ''%'+@name+'''

--OR
declare @sql nvarchar(1000)
set @sql='select * from tablename where name like ''%@name'''
exec sp_executesql @sql,N'@name varchar(50)',@name
[/Quote]
赞一个!
luobing261314 2009-05-13
  • 打赏
  • 举报
回复
上面不行
双引号是2个单引号。
chenyunkun2008 2009-05-13
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 luobing261314 的回复:]
看看我的


select * from CG_Order where Name like ''+@name+'%'


[/Quote]



这样写应是没多大问题
luobing261314 2009-05-13
  • 打赏
  • 举报
回复
看看我的


select * from CG_Order where Name like ''+@name+'%'

huyingxin 2009-05-13
  • 打赏
  • 举报
回复
一个吧
fuillusion 2009-05-13
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 a82344626 的回复:]
引用 10 楼 hsnhsn0916 的回复:
引号没加

正解
这是用字符串连接起来的
[/Quote]
现在我加了引号,还是无法查询出数据来
sql语句如下:
create procedure sbcs_getProductByKey
@keyword char(20)
as
select ProName, ProId,ProPrice,UserName from Product_Tab,User_Tab
where User_Tab.UserId=Product_Tab.UserId and ProName like '''%'+@keyword+'%'''
go
这个没有语法错误,但就是查询不出数据来.
hj5632 2009-05-13
  • 打赏
  • 举报
回复

exec('select * from tablename
where name like ''%'+@name+'%''' )
a82344626 2009-05-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 ojlovecd 的回复:]
try:

SQL code
declare @like varchar(50)
declare @sql varchar(500)
set @like = 'ojlovecd'
set @sql ='select * from UserInfo where UserName like ''%' + @like + '%'''
exec(@sql)
[/Quote]
正解
这是用字符串连接起来的
a82344626 2009-05-13
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hsnhsn0916 的回复:]
引号没加
[/Quote]
正解
这是用字符串连接起来的
fuillusion 2009-05-13
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 chenjunsheep 的回复:]
存过程 = 存储过程?
楼主,你也说清楚点嘛
[/Quote]
呵呵,不好意思,是存储过程,太急了少打了一个字.
wudibishen 2009-05-13
  • 打赏
  • 举报
回复
学习学习~~~
fuillusion 2009-05-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhongxingqiche 的回复:]
SQL codeCREATE PROCEDURE ry_mhcx
@Keyword nvarchar(50)

AS
select * from renyuan where PNo like '%'+@Keyword +'%'
or PName like '%'+@Keyword +'%'
or Department like '%'+@Keyword +'%'
or sex like '%'+@Keyword +'%'
or InsuranceJob like '%'+@Keyword +'%'
or banzu like '%'+@Keyword +'%'
order by xh
GO



看看我的!!!
[/Quote]
试过,没用.
chenjunsheep 2009-05-13
  • 打赏
  • 举报
回复
存过程 = 存储过程?
楼主,你也说清楚点嘛
我姓区不姓区 2009-05-13
  • 打赏
  • 举报
回复
try:

declare @like varchar(50)
declare @sql varchar(500)
set @like = 'ojlovecd'
set @sql ='select * from UserInfo where UserName like ''%' + @like + '%'''
exec(@sql)
hsnhsn0916 2009-05-13
  • 打赏
  • 举报
回复
引号没加
wanghao2979 2009-05-13
  • 打赏
  • 举报
回复
关注一下。








.net高手崛起系列群
.net高手崛起1:57881040
.net高手崛起2:38382341
.net高手崛起3:57881098
fuillusion 2009-05-13
  • 打赏
  • 举报
回复
没用,我试过了.
加载更多回复(6)

62,046

社区成员

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

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

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

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