• like 模糊查询


    本章节将介绍 like、notLike、likeRight、likeLeft 条件,

    like(完全模糊,即“like '%val%'”)

    1
    2
    like(R column, Object val)
    like(boolean condition, R column, Object val)

    参数说明:

    • column:要用于条件筛选的数据库表列名称,如:name

    • val:用于指定数据表列的值,条件将根据该值进行筛选

    • condition:用于指定当前这个条件是否有效;如果为 true,则应用当前条件;如果为 false,则忽略当前条件。

    实例:查询用户名称中包含“王”值的用户信息,如下:

    1
    2
    QueryWrapper<UserBean> wrapper = new QueryWrapper<>();
    wrapper.like("name""王"); // 等价 SQL 语句:name like '%王%'

    notLike(完全模糊取非,即“not like '%val%'”)

    1
    2
    notLike(R column, Object val)
    notLike(boolean condition, R column, Object val)

    参数说明:

    • column:要用于条件筛选的数据库表列名称,如:name

    • val:用于指定数据表列的值,条件将根据该值进行筛选

    • condition:用于指定当前这个条件是否有效;如果为 true,则应用当前条件;如果为 false,则忽略当前条件。

    实例:查询用户包含“王”值的用户信息,如下:

    1
    2
    QueryWrapper<UserBean> wrapper = new QueryWrapper<>();
    wrapper.notLike("name""王"); // 等价 SQL 语句:name not like '%王%'

    likeLeft(仅左边模糊,即“like '%val'”)

    1
    2
    likeLeft(R column, Object val)
    likeLeft(boolean condition, R column, Object val)

    参数说明:

    • column:要用于条件筛选的数据库表列名称,如:name

    • val:用于指定数据表列的值,条件将根据该值进行筛选

    • condition:用于指定当前这个条件是否有效;如果为 true,则应用当前条件;如果为 false,则忽略当前条件。

    实例:查询用户名以“王”值结束的用户信息列表,如下:

    1
    2
    QueryWrapper<UserBean> wrapper = new QueryWrapper<>();
    wrapper.likeLeft("name""王"); // 等价 SQL 语句:name like '%王'

    likeRight(仅右边模糊,即“like 'val%'”)

    1
    2
    likeRight(R column, Object val)
    wrapper.likeRight(boolean condition, R column, Object val)

    参数说明:

    • column:要用于条件筛选的数据库表列名称,如:name

    • val:用于指定数据表列的值,条件将根据该值进行筛选

    • condition:用于指定当前这个条件是否有效;如果为 true,则应用当前条件;如果为 false,则忽略当前条件。

    实例:查询用户名以“王”值开始的用户信息列表,如下:

    1
    2
    QueryWrapper<UserBean> wrapper = new QueryWrapper<>();
    likeRight("name""王"); // 等价 SQL 语句:name like '王%'

    示例代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    package com.hxstrive.mybatis_plus.simple_mapper.condition;
     
    import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
    import com.hxstrive.mybatis_plus.mapper.SimpleMapper;
    import com.hxstrive.mybatis_plus.model.UserBean;
    import org.junit.jupiter.api.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    import java.util.List;
     
    @RunWith(SpringRunner.class)
    @SpringBootTest
    class Condition7Test {
     
        @Autowired
        private SimpleMapper simpleMapper;
     
        @Test
        void contextLoads() {
            System.out.println("================== 分割线 (like '%佳%') ===================");
            QueryWrapper<UserBean> wrapper = new QueryWrapper<>();
            wrapper.like("name""佳");
            List<UserBean> userBeanList = simpleMapper.selectList(wrapper);
            for(UserBean userBean : userBeanList) {
                System.out.println(userBean);
            }
     
            System.out.println("================== 分割线 (not like '%佳%') ===================");
            wrapper = new QueryWrapper<>();
            wrapper.notLike("name""佳");
            userBeanList = simpleMapper.selectList(wrapper);
            System.out.println("result size=" + userBeanList.size());
            for(int i = 0; i < (userBeanList.size() > 10 10 : userBeanList.size()); i++) {
                System.out.println(userBeanList.get(i));
            }
     
            System.out.println("================== 分割线 (like '黄%') ===================");
            wrapper = new QueryWrapper<>();
            wrapper.likeRight("name""黄");
            userBeanList = simpleMapper.selectList(wrapper);
            for(UserBean userBean : userBeanList) {
                System.out.println(userBean);
            }
     
            System.out.println("================== 分割线 (like '%佳') ===================");
            wrapper = new QueryWrapper<>();
            wrapper.likeLeft("name""佳");
            userBeanList = simpleMapper.selectList(wrapper);
            for(UserBean userBean : userBeanList) {
                System.out.println(userBean);
            }
        }
     
    }

    运行上面程序,将执行如下 SQL 代码:

    1
    2
    3
    4
    5
    6
    7
    8
    Preparing: SELECT user_id,name,sex,age,face,salary,borthday FROM user WHERE (name LIKE ?)
    Parameters: %佳%(String)
    Preparing: SELECT user_id,name,sex,age,face,salary,borthday FROM user WHERE (name NOT LIKE ?)
    Parameters: %佳%(String)
    Preparing: SELECT user_id,name,sex,age,face,salary,borthday FROM user WHERE (name LIKE ?)
    Parameters: 黄%(String)
    Preparing: SELECT user_id,name,sex,age,face,salary,borthday FROM user WHERE (name LIKE ?)
    Parameters: %佳(String)

    本文转摘: https://www.hxstrive.com/subject/mybatis_plus.htm?id=292

  • 相关阅读:
    链表首尾节点的常规方案
    MYSQL 学习
    卡尔曼滤波
    降维技术
    Hurst指数python实现
    一维GMM的Python代码实现
    对数周期幂率模型(LPPL)
    paper 112:hellinger distance
    paper 111:图像分类物体目标检测 from RCNN to YOLO
    paper 110:凸优化和非凸优化
  • 原文地址:https://www.cnblogs.com/xiadongqing/p/15195906.html
Copyright © 2020-2023  润新知