数据库查询:通过两字段其中一个查询信息

根据姓名Name或者编号Code获取Student信息

一、SQL语句

sql 复制代码
select * from student_info
where concat(ifnull(student_code,''),ifnull(student_name,''))like concat('%' ,'具体姓名或学号','%')

二、MyBatis的XML映射代码定义了一个查询方法

XML 复制代码
 <select id="selectStudentByNameOrCode" parameterType="String" resultMap="StudentResult">
        <include refid="selectStudent"/>
        where concat(ifnull(student_code ,''),ifnull(student_name ,'')) like concat('%',#{flag},'%') and status=0
    </select>

这段代码是MyBatis映射文件中的一段SQL映射配置,用于定义一个名为selectStudentByNameOrCode的查询操作。下面是各部分的详细解释:

<select>标签:定义了一个SQL查询语句,其属性说明如下:

id="selectStudentByNameOrCode":这是查询操作的唯一标识符,可以在MyBatis的接口映射或直接在Java代码中通过这个ID来调用这个查询。

parameterType="String":指定了传入此查询方法的参数类型,这里是字符串类型(String),意味着查询时会接收一个字符串参数。

resultMap="StudentResult":指定了查询结果映射到Java对象的方式,通过引用名为StudentResult的结果映射来处理查询结果,将数据库字段映射到Java对象的属性上。

<include refid="selectStudent"/>:这是MyBatis中的动态SQL片段引用,表示将另一个映射文件中定义的SQL片段(ID为selectStudent)插入到此处。这个片段通常包含一些通用的SELECT字段列表或其他重复使用的SQL代码,以提高代码的复用性和可维护性。

where子句:定义了查询的条件。

concat(ifnull(student_code ,''),ifnull(student_name ,'')) like concat('%',#{flag},'%'):构建了一个模糊查询条件,用于匹配student_code和student_name的组合。这里使用了concat函数来连接这两个字段的值(如果它们为NULL,则替换为空字符串),然后使用like操作符配合通配符%来匹配传入的参数#{flag}。这意味着查询会找出student_code和student_name连接起来的字符串中包含flag值的记录。

and status=0:添加了额外的查询条件,限制结果中status字段的值必须为0。

综上所述,这段配置定义了一个查询操作,用于根据传入的flag字符串模糊搜索那些状态为0(假设0表示某种可用状态)且student_code与student_name组合起来包含该flag值的库存记录,并将查询结果映射到StudentResult定义的Java实体类上。

三、mapper

java 复制代码
    /**
     * @return
     * @Author lyy
     * @Description //通过姓名或编号获取信息
     * @Param
     **/
    List<Student> selectStudentByNameOrCode(@Param("flag") String flag);
相关推荐
月光水岸New1 小时前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
狄加山6751 小时前
数据库基础1
数据库
我爱松子鱼2 小时前
mysql之规则优化器RBO
数据库·mysql
chengooooooo2 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser3 小时前
【SQL】多表查询案例
数据库·sql
Galeoto3 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
人间打气筒(Ada)3 小时前
MySQL主从架构
服务器·数据库·mysql
leegong231113 小时前
学习PostgreSQL专家认证
数据库·学习·postgresql
喝醉酒的小白3 小时前
PostgreSQL:更新字段慢
数据库·postgresql
敲敲敲-敲代码4 小时前
【SQL实验】触发器
数据库·笔记·sql