ibatis(操作mssql)使用like又使用sql的函数后的新发现

本文介绍了在SQL查询中使用LIKE操作符时参数化的三种方法,包括直接拼接字符串、使用特殊符号包裹参数以及通过函数处理参数等技巧,并讨论了它们在实际应用中的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现在发现可以有三种:

1、拼字符串:这个方法一看就很傻!没试验过,网上找的,应该可行。

当应用SELECT * FROM TABLE WHERE COL LIKE 'value%'时如果要把'value'以参数代替,可以把整个LIKE后面的字符串全改为参数,即 SELECT * FROM TABLE WHERE COL LIKE #param#,此时参数param的值为字符串"value%"。

2、使用'$param$%',网上都说很好,但是会有注入的漏洞。并且如果你想再对传入的参数调用sql函数时,这个语句简直无法拼出来了,至少我不行。

使用'$'将参数名包起来,即SELECT * FROM TABLE WHERE COL LIKE'$param$%',此时参数param的值就是字符串"value"。这个方法最好用了!

3、以前没用过,发现很好用。其实也是拼字符串,一般我们在sql语句中这样用 'param%' ,现在变成 'param' + '%' ,其实都一样。

SELECT * FROM TABLE WHERE COL LIKE #param# + '%'

使用函数:

SELECT * FROM TABLE WHERE COL LIKE dbo.fun_method(#param#) + '%'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值