1.返回值:由全体出入参数合并在一起而得到的字符串。只要输入的参数中有NULL值,就返回NULL。CONCAT允许只有一个输入参数的情况。
因此,MySQL单表多字段模糊查询可以通过下面这个SQL查询实现
SELECT * FROM `magazine` WHERE CONCAT(`title`,`tag`,`description`) LIKE ‘%关键字%’
2.如果这三个字段中有值为NULL,则返回的也是NULL,那么这一条记录可能就会被错过,怎么处理呢,我这边使用的是IFNULL进行判断,则sql改为:
<pre name="code" class="sql">SELECT * FROM `magazine` WHERE CONCAT(IFNULL(`title`,''),IFNULL(`tag`,''),IFNULL(`description`,'')) LIKE ‘%关键字%’
a LEFT JOIN b ON a.id = b.id。
a.name LIKE CONCAT(CONCAT("%","param.name"),"%")。
import com.baomidou.mybatisplus.core.metadata.IPage
dao,Ipage<entity>pageRecord(Ipage<entity>page, Param param)
xml,sql语句不需要做显式分页,Ipage会代替做。
service,Ipage<entity>res = dao.pageRecord(new Page<>(current, size), param)int sum = res.getTotal()List<entity>records = res.getRecords()
在mapper中直接分页没法得到数据总数,此时可以使用MyBatis的自定义分页Ipage,Ipage<entity>page(new Page<>(current, size)),赋值分页参数,返回用Ipage<entity>接收,总数在Ipage.getTotal()里面,数据在Ipage.getRecords()里面。
Ipage会先根据条件执行count(*),再执行SQL获取数据。
1、mysql :LIKE CONCAT('%',#{empname},'%' ) 或者 LIKE CONCAT('%',‘${empname}’,'%' ) 2、oracle:LIKE '%'||#{empname}||'%'欢迎分享,转载请注明来源:内存溢出
评论列表(0条)