幽兰生空谷
--绝世独自开

MySql中like concat()模糊查询的用法

like concat()

concat()是用来连接字符串的,对于mysql的 like 而言,一般都要用 like concat() 组合,可以防止 sql 注入。

like concat('%/',#{datePath,jdbcType=VARCHAR},'/%')

第一个参数 ,就是’%’,其中%后边可以加上一些常量字符比如  / 。

第二参数,基本上就是传递过来的参数 。

第三个参数,是结尾的 ‘%’, %前边可以加一定的常量字符比如  / 。

假设需要模糊匹配的是字段name,其sql语句如下

select * from Table where 1=1 name like '%?name%'

通过执行语句,数据库却提示语法错误,而错误原因是因为参数化的时候?name最终会被字符串替代;假设?name参数化时,其值为’jin’;上述语句等价如下:

select * from Table where 1=1 name like '%'jin'%'

很明显 ‘%’jin’%’ 是非法的;

正确语法如下:

select * from Table where 1=1 name like concat('%',?name,'%')

实际项目中后面的参数是以参数传进来的

select * from user where name like concat("%",#{name},"%")

例子:

精确查询:

select * from user where name="zhangsan"

模糊查询;

select * from user where name like "%zhang%"

在实际的使用中,条件是作为参数传递进来的。 所以我们使用 concat() 函数

mybatis:

select * from user where name like concat("%", #{name},"%")

concat(str1,str2,str3,str4,…); 连接字符串函数,会生成一个字符串

赞(3) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《MySql中like concat()模糊查询的用法》
文章链接:https://www.itheibai.com/archives/672
免责声明:根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途,网站会员捐赠是您喜欢本站而产生的赞助支持行为,仅为维持服务器的开支与维护,全凭自愿无任何强求。

评论 抢沙发

评论前必须登录!

 

养成“打赏”的好习惯,从我做起!

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册