<select id="likeSelect" resultType="User"> select * from `user` where <if test='#{findType}=="1"'> `name` </if> <if test="#{findType}==2"> `sex` </if> <if test="#{findType}==3"> `profession` </if> <if test="#{findType}==4"> `address` </if> <if test="#{findType}==5"> `phone` </if> <if test="#{findType}==6"> `email` </if> <if test="#{findType}==7"> `qq` </if> <if test="#{findType}==8"> `wx` </if> like '%'+#{findStr}+'%' </select>
时间: 2024-04-15 18:25:39 浏览: 130
这段代码是一个动态生成 SQL 查询语句的代码片段,根据参数 `findType` 的不同值来决定以哪个字段作为查询条件,并且使用 `like` 进行模糊匹配。`findStr` 是要查询的关键词。
具体逻辑如下:
- 当 `findType` 的值为 1 时,以 `name` 字段作为查询条件;
- 当 `findType` 的值为 2 时,以 `sex` 字段作为查询条件;
- 当 `findType` 的值为 3 时,以 `profession` 字段作为查询条件;
- 当 `findType` 的值为 4 时,以 `address` 字段作为查询条件;
- 当 `findType` 的值为 5 时,以 `phone` 字段作为查询条件;
- 当 `findType` 的值为 6 时,以 `email` 字段作为查询条件;
- 当 `findType` 的值为 7 时,以 `qq` 字段作为查询条件;
- 当 `findType` 的值为 8 时,以 `wx` 字段作为查询条件。
最后,通过拼接字符串,使用 `%` 进行模糊匹配,查询出符合条件的结果。
相关问题
<select id="getUserList" resultType="User"> SELECT * FROM user <where> <if test="name != null"> AND user_name = #{name} </if> <if test="age != null"> AND age = #{age} </if> <if test="gender != null"> AND gender = #{gender} </if> </where> </select>在这段查询中在加上按照id排序
可以在SQL语句的末尾添加ORDER BY子句来实现按照id排序,具体如下:
```
<select id="getUserList" resultType="User">
SELECT * FROM user
<where>
<if test="name != null">
AND user_name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
<if test="gender != null">
AND gender = #{gender}
</if>
</where>
ORDER BY id
</select>
```
在这个示例中,我们在<where>标签之后添加了ORDER BY id语句,用于按照id排序。需要注意的是,ORDER BY子句应该放在SQL语句的末尾,否则会出现语法错误。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mapper.sapper"> <delete id="deleteSp"> delete from sp where no=#{No}; </delete> <delete id="deleteUser"> delete from user where userzh=#{zh}; </delete> <select id="selectAll" resultType="com.pojo.sp"> select * from sp; </select> <select id="selectbyid" resultType="com.pojo.sp"> select * from sp where no=#{id} order by no desc; </select> <insert id="insertbyzh"> insert into user(userzh,usermima) values (#{userzh},#{usermima}); </insert> <insert id="insertsp"> insert into sp(spname,spnum,spprice,images) values (#{spname},#{spnum},#{spprice},#{images}) </insert> <update id="updated" parameterType="com.pojo.sp"> update sp set spnum=#{spnum} where no=#{NO}; </update> <update id="updatedAll" parameterType="com.pojo.sp"> update sp set spname=#{spname},spnum=#{spnum},spprice=#{spprice} where NO=#{NO} </update> <select id="selectbyname" resultType="com.pojo.user"> select usermima,userzh from user where userzh=#{userzh}; </select> <select id="selectall" resultType="com.pojo.user"> select * from user; </select> </mapper>
这是一个 MyBatis 的 mapper 文件,用于定义 SQL 语句和对应的方法,以及参数和返回值类型。其中包含了删除、插入、更新和查询操作,分别用于删除商品、删除用户、查询所有商品、根据商品ID查询商品、根据用户账号查询用户、查询所有用户、插入用户和插入商品等操作。该 mapper 文件对应的命名空间为 com.mapper.sapper。
阅读全文