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

问题: 在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. python基础[16]——解决django连接mysql数据库报错的问题

    Models.py #创建数据表 from django.db import models from django.utils import timezone from tinymce.models ...

  2. Python爬虫之Beautifulsoup模块的使用

    一 Beautifulsoup模块介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Be ...

  3. 从壹开始 [ Ids4实战 ] 之七 ║ 客户端、服务端、授权中心全线打通

    1.经过元旦两天的全力整改,终于在这新的一年,完成了我的布道生涯的第一个大步走 —— 那就是客户端(VUE).服务端(ASP.NET Core API).授权中心(IdentityServer4)的大 ...

  4. $SP703\ Mobile\ Service\ DP$

    洛谷 Sol 首先状态是已经完成的请求数量 这题只有三个员工跑来跑去,只有三个.... 一般像这种人数特别少的DP题就会把它们都放到状态里去 于是:f[i][x][y][z]表示现在已经完成了i个请求 ...

  5. $ZOJ\ 2432\ Greatest\ Common\ Increasing\ Subsequence$

    传送门 $Description$ 求两个序列的最长公共上升子序列 $Solution$ $f[i][j]$表示$a$序列匹配到$i$和$b$序列匹配到$j$的最长上升序列的长度,这里并不要求$a[i ...

  6. Groovy重载操作符

    重载一时爽,一直重载一直爽. 最近在读<Groovy in action>一本书重新复习了Groovy的一些语法特性,迷恋上这个重载操作符的功能,坚持爽的不要要的.分享一个Demo. 由于 ...

  7. kubelet--help-v1.15.4

    kubelet --help 官方文档   The kubelet is the primary "node agent" that runs on each node. It c ...

  8. beetlex网关之聚合和url请求过虑

    在这里主要介绍beetlex应用网关的两个插件,分别是聚合和url请求过虑.通过聚合插件可以把整合多个请求的数据来应答请求端,而Url请求过虑同可以拒绝一些有非常关键字的请求. 请求聚合 在网关服务中 ...

  9. ECOS问题解决记录

    1.finder自定义列 http://club.ec-os.net/doc/ecos/framework-ecos/advance/desktop/dev.html#id5 2.命令行工具 地址 h ...

  10. 【Javaweb学习笔记】XML和约束模式

    一.XML语法 xml 可扩展标记语言,w3c组织发布的,用于保存有关系的数据,作为配置文件,描述程序模块之间的关系 xml 文件开头必须包括下面的标签: <?xml version=" ...