积少成多 ----  仅以此致敬和我一样在慢慢前进的人儿

问题: 在sqlserver 进行模糊查询,出现问题

最初使用“concat”,进行拼串操作,如下所示:
<select id = "queryCount" resultType="int" >
select count(*)
from t_user
<where>
<if test = "queryText!= null"> loginacct like concat("%", #{queryText}, "%) </if>
</where>
</select>

运行结果concat” 是不是可以识别的函数,不是内置函数

查询结果: “concat”方法进行拼串,只适用于mysql 和 oracle, 不适用于sqlserver,这个函数是用来连接字符串,                            sqlserver中没有,可以使用 + 连接符号搞定

解决方案:使用传统的拼串操作,“like”操作尝试:

尝试一: 使用占位符(#{})
<select id = "queryCount" resultType="int" >
select count(*)
from t_user
<where>
<if test = "queryText!= null"> loginacct like '%#{queryText}%' </if>
</where>
</select> 运行结果:
Preparing: select count(*) from t_user WHERE loginacct like '%?%' 

com.microsoft.sqlserver.jdbc.SQLServerException: 索引 1 超出范围。

查询结果:在使用占位符进行模糊查询时不能把问号放在引号里面,问号的位置必须跟字段名同级;(不理解)

解决方案:like '%' + #{quertText} + '%’(成功运行)

<select id = "queryCount" resultType="int" >
select count(*)
from t_user
<where>
<if test = "queryText!= null"> loginacct like '%' + #{queryText}+ '%' </if>
</where>
</select>
尝试二: 使用EL表达式(成功运行)
<select id = "queryCount" resultType="int" >
select count(*)
from t_user
<where>
<if test = "queryText!= null"> loginacct like '%${queryText}%' </if>
</where>
</select>
存在问题:使用 ${}无法防止sql注入   

  结论:sqlserver 模糊查询中, 优先使用 like '%' + #{quertText} + '%’进行操作

sqlserver 分页模糊查询例码:(供自己忘记后查看)

<select id = "queryList" resultType="T_user">
select top ${pagesize}*
from t_user
<where>
<if test = "queryText!=null">loginacct like '%' + #{queryText}+ '%'
and id not in
(select top ${startIndex} id from t_user order by id)
order by id
</if>
</where>
<where>
<if test = "queryText==null">
id not in
(select top ${startIndex} id from t_user order by id)
order by id
</if>
</where>
</select> 注意事项: 单个或者是多个条件查询,都是只有一个“where” 条件之间使用 “and” 连接

2020 / 03 / 12

今天做模糊查询的时候, 回来看发现使用上面的不行,折腾了半天, 双引号换成单引号就可以,好奇怪

<select id = "productFuzzyQuery" parameterType="String" resultType="com.wchat.secondhand.entity.Items">
select
id, address, goods, description, price, location
from
t_item
where
goods
like
'%' + #{product} + '%'
</select>

很奇怪,上面原来是可以的,今天测却又是不行,哎

2020 -3-19

今天使用分页,依据上面的写法, 但是报错显示

ibatis Cause: com.microsoft.sqlserver.jdbc.SQLServerException: '@P0' 附近有语法错误

查询资料:

  https://blog.csdn.net/niqikun/article/details/49047153

https://blog.csdn.net/SUN_song520/article/details/50482178?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

  http://yayihouse.com/yayishuwu/chapter/1765

又是一件很奇怪的事情

sqlserver 分页模糊查询的更多相关文章

  1. hibernate -- 分页模糊查询中setParameter 和setParameterList

    在分页模糊查询中碰到setParameter 和setParameterList这两个方法 setParameter 以前就只会用setParameter(int arg,String str),我用 ...

  2. MyBatis Plus 实现多表分页模糊查询

    项目中使用springboot+mybatis-plus来实现. 但是之前处理的时候都是一个功能,比如分页查询,条件查询,模糊查询. 这次将这个几个功能合起来就有点头疼,写下这边博客来记录自己碰到的问 ...

  3. hibernate分页模糊查询

    在web项目中,显示数据一般采用分页显示的,在分页的同时,用户可能还有搜索的需求,也就是模糊查询,所以,我们要在dao写一个可以分页并且可以动态加条件查询的方法.分页比较简单,采用hibernate提 ...

  4. Bootstrap-table学习笔记(二)——前后端分页模糊查询

    在使用过程中,一边看文档一边做,遇到了一些困难的地方,在此记录一下,顺便做个总结: 1,前端分页 2,后端分页 3,模糊查询 前端分页相当简单,在我添加了2w条测试数据的时候打开的很流畅,没有卡顿. ...

  5. .netcore mongodb 分页+模糊查询+多条件查询

    .netcore MongoDB.Driver 版本才2.8 与aspnet差距太大,网上找很多资料没有现成的代码. public override async Task<PagerList&l ...

  6. table+分页+模糊查询

    这个分页超级棒嘞. 网页链接:http://www.cssmoban.com/cssthemes/7528.shtml

  7. 【JPA】使用JPA实现分页和模糊查询

    1.首先创建DAO层接口,实现JpaRepository和JpaSpecificationExecutor两个接口 JpaRepository<Admin, Integer> 泛型参数分别 ...

  8. SQL like 模糊查询

    SQL 模糊查询 在进行数据库查询时,有完整查询和模糊查询之分. 一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: ...

  9. sql模糊查询

    SQL 模糊查询 在进行数据库查询时,有完整查询和模糊查询之分. 一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: ...

随机推荐

  1. VS2017+QT5.11.2+SeetaFace1.0/SeetaFace2.0的简单实现

    SeetaFace开源引擎GitHub地址:https://github.com/seetaface/SeetaFaceEngine SeetaFace2开源引擎GitHub地址:https://gi ...

  2. lombok优缺点

    优点: 能通过注解的形式自动生成构造器.getter/setter.equals.hashcode.toString等方法,提高了一定的开发效率 让代码变得简洁,不用过多的去关注相应的方法 属性做修改 ...

  3. $ [Contest \#4]$求和 思博题

    正解: 解题报告: 传送门$QwQ$ 一道看起来是数位$dp$其实并不是的题$QwQ$ 首先求$\sum_{l}^r$就变成$\sum_1^r-\sum_1^{l-1}$不说$QwQ$.现在就只要求$ ...

  4. $[TJOI2017]$ 可乐 矩阵优化$dp$

    \(Sol\) 设\(f_i\)为到第\(i\)秒的方案数,显然\(f_i=\)在第\(i\)秒前爆炸的方案数+在第\(i\)秒爆炸的方案数+在第\(i\)秒停下的方案数+在第\(i\)秒走向下一个城 ...

  5. Spark设置Kryo序列化缓冲区大小

    背景 今天在开发SparkRDD的过程中出现Buffer Overflow错误,查看具体Yarn日志后发现是因为Kryo序列化缓冲区溢出了,日志建议调大spark.kryoserializer.buf ...

  6. 探究Dubbo的拓展机制: 上

    这篇博文是我决心深度学习Dubbo框架时记录的笔记, 主题是Dubbo的拓展点, 下面的几个部分相对来说比较零散, 貌似是不和主题挂钩的 , 并且是一些很冷门的知识点 , 但是它们确实是深入学习Dub ...

  7. key_load_public: invalid format

    ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub

  8. Linux Cgroup浅析

    cgroup从2.6.4引入linux内核主线,目前默认已启用该特性.在cgroup出现之前,只能对一个进程做资源限制,比如通过sched_setaffinity设置进程cpu亲和性,使用ulimit ...

  9. 《【面试突击】— Redis篇》-- Redis的主从复制?哨兵机制?

    能坚持别人不能坚持的,才能拥有别人未曾拥有的.关注左上角编程大道公众号,让我们一同坚持心中所想,一起成长!! <[面试突击]— Redis篇>-- Redis的主从复制?哨兵机制? 在这个 ...

  10. Docker学习(一)环境准备安装centos7

    前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化.容器是完全使用沙箱机 ...