sqlserver 分页模糊查询
积少成多 ---- 仅以此致敬和我一样在慢慢前进的人儿
问题: 在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
http://yayihouse.com/yayishuwu/chapter/1765
又是一件很奇怪的事情
sqlserver 分页模糊查询的更多相关文章
- hibernate -- 分页模糊查询中setParameter 和setParameterList
在分页模糊查询中碰到setParameter 和setParameterList这两个方法 setParameter 以前就只会用setParameter(int arg,String str),我用 ...
- MyBatis Plus 实现多表分页模糊查询
项目中使用springboot+mybatis-plus来实现. 但是之前处理的时候都是一个功能,比如分页查询,条件查询,模糊查询. 这次将这个几个功能合起来就有点头疼,写下这边博客来记录自己碰到的问 ...
- hibernate分页模糊查询
在web项目中,显示数据一般采用分页显示的,在分页的同时,用户可能还有搜索的需求,也就是模糊查询,所以,我们要在dao写一个可以分页并且可以动态加条件查询的方法.分页比较简单,采用hibernate提 ...
- Bootstrap-table学习笔记(二)——前后端分页模糊查询
在使用过程中,一边看文档一边做,遇到了一些困难的地方,在此记录一下,顺便做个总结: 1,前端分页 2,后端分页 3,模糊查询 前端分页相当简单,在我添加了2w条测试数据的时候打开的很流畅,没有卡顿. ...
- .netcore mongodb 分页+模糊查询+多条件查询
.netcore MongoDB.Driver 版本才2.8 与aspnet差距太大,网上找很多资料没有现成的代码. public override async Task<PagerList&l ...
- table+分页+模糊查询
这个分页超级棒嘞. 网页链接:http://www.cssmoban.com/cssthemes/7528.shtml
- 【JPA】使用JPA实现分页和模糊查询
1.首先创建DAO层接口,实现JpaRepository和JpaSpecificationExecutor两个接口 JpaRepository<Admin, Integer> 泛型参数分别 ...
- SQL like 模糊查询
SQL 模糊查询 在进行数据库查询时,有完整查询和模糊查询之分. 一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: ...
- sql模糊查询
SQL 模糊查询 在进行数据库查询时,有完整查询和模糊查询之分. 一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: ...
随机推荐
- 【题解】P2521 [HAOI2011]防线修建(动态凸包)
[题解]P2521 [HAOI2011]防线修建(动态凸包) 凸包是易插入不好删除的东西,按照剧情所以我们时光倒流 然后问题就是维护凸包的周长,支持加入 本来很简单,但是计算几何就是一些小地方经验不足 ...
- 洛谷$P1345\ [USACO5.4]$ 奶牛的电信$Telecowmunication$ 网络流
正解:最小割 解题报告: 传送门$QwQ$ $QwQ$好久没做网络流了来复健下. 这个一看就很最小割趴?考虑咋建图?就把点拆成边权为$1$的边,然后原有的边因为不能割所以边权为$inf$. 然后跑个最 ...
- $Noip2014/Luogu2312$ 解方程
$Luogu$ $Sol$ 枚举解+秦九韶公式计算+取模. $Code$ #include<iostream> #include<cstdio> #include<cst ...
- 「UVA10810」Ultra-QuickSort 解题报告
题面 看不懂?! 大概的意思就是: 给出一个长度为n的序列,然后每次只能交换相邻的两个数,问最小需要几次使序列严格上升 不断读入n,直到n=0结束 思路: 交换相邻的两个数,这不就类似冒泡排序吗?但是 ...
- Django 单表查询
前言 如何只单独测试django中的某一个py文件呢?或者说如何书写测试脚本? 我们可以在任意一个py文件(应用下的tests或者自己新建一个)中书写以下代码: 前期准备 创建一个电影表 class ...
- 日志冲突解决方案(基于gradle)
日志冲突解决方案 前提:我使用gradle管理项目 最近在项目中需要用curator客户端操作zookeeper,在maven仓库拉取的jar包导致日志冲突,会报以下的错误: 经常会有如上图2处红色框 ...
- Python保存时提示“SyntaxError: Non-ASCII character '\xe8' in file”
原因 Python 默认的是ASCII 编码方式,如果出现中文会出现问题,所哟必须在代码的第二行或第一行 显示的声明编码方式(已注释的方式,即"#"开始) 解决方法 在文件头部加上 ...
- Hyperledger Fabric1.4 安装
Hyperledger Fabric 依赖的软件版本查看官方 github 地址 https://github.com/hyperledger/fabric 下文件 /docs/source/prer ...
- 每日一问2:堆(heap)和栈(stack)的区别
因为这里没有明确指出堆是指数据结构还是存储方式,所以两个尝试都回答一下. 一.堆和栈作为数据结构 1.堆(heap),也叫做优先队列(priority queue),队列中允许的操作是先进先出(FIF ...
- 重拾c++第四天(7):函数相关
1.引用变量: int a; int &b = a; //引用变量 指向同一地址,必须在初始化时定义,且一直对原变量献上忠诚,主要针对类对象 2.函数重载最好用在功能相同,但数据类型不同的情况 ...