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

问题: 在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. VRChat之转移地图缓存

    我的电脑是win10,win10的缓存地址和名称可能和win7的名字有所不同. win10缓存路径:C:\Users\Administrator\AppData\LocalLow\VRChat\VRC ...

  2. ajax异步发送时遇到的问题

    问题原因是:controller中方法名与url中的名字不一样造成的 解决办法:找到错误的方法名,将其与url中的方法名统一:

  3. 洛谷$P4045\ [JSOI2009]$密码 $dp$+$AC$自动机

    正解:$dp$+$AC$自动机+搜索 解题报告: 传送门$QwQ$ 首先显然先建个$AC$自动机,然后考虑设$f_{i,j,k}$表示长度为$i$,现在在$AC$自动机的第$j$个位置,已经表示出来的 ...

  4. 洛谷$P$1486 郁闷的出纳员 $[NOI2004]$ $splay$

    正解:$splay$ 解题报告: 传送门! 依然先考虑要呲呲些什么操作鸭$QwQ$ 其实就只要一个删除区间,一个查询第$k$大,还一个插入就欧克? 删除区间的话直接旋转下根什么的然后直接把子树删了就好 ...

  5. Redis远程连接报错解决

    今天测试了一下在本机(win10系统)远程连接 centos下的redis,结果报了以下错误: Exception in thread "main" redis.clients.j ...

  6. 1053 住房空置率 (20 分)C语言

    在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断.判断方法如下: 在观察期内,若存在超过一半的日子用电量低于某给定的阈值 e,则该住房为"可能空置&quo ...

  7. linux入门系列3--常见的linux远程登陆管理工具

    服务器一般是云服务器或者放置在机房,我们日常工作中通过远程连接工具连接到服务器进行操作,这类工具很多(如SecureCRT.XShell.Putty.FinallShell.TeamViewer以及w ...

  8. Java工作流引擎节点接收人设置20种规则讲解一

    关键字: 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 开发者表单  拖拽式表单 工作流系统CCBPM节点访问规则接收人规则 适配数据库: o ...

  9. git利用hooks实现自动部署

    准备工作: 1.一台虚拟linux环境和window 开始工作 1.安装git(略) 2.创建git用户和创建test.git裸仓库 [root@localhost ~]# useradd -m gi ...

  10. js的alert()

    效果图: 图一: 图二: 图三: 代码: <script type="text/javascript"> // alert() ; 只允许一个参数,如果有多个参数只显示 ...