<select id="findHdRectorder" parameterType="com.tst.model.hd.HdRectorder" resultType="com.tst.model.hd.HdRectorder"> select h.*, (select process_bar from hd_rectorder_task t where t.hd_no=h.hd_no and t.sta_time=(select max(sta_time) from hd_rectorder_task t1 where t1.hd_no=h.hd_no and t1.status=2) limit 1), (select major_name from sec_major m where h.major_id=m.major_id) major, u.name create_name, u.phone create_phone, u2.name rect_name, u2.phone rect_phone, u3.name concert_name, u3.phone concert_phone, p.proc_name, (select name from te_geoloc t where h.cityid=t.mnodeid and h.cityid>0) cityname, (select name from te_geoloc t where h.areaid=t.id) areaname from hd_rectorder h left join sec_user u on h.create_by=u.username left join sec_user u2 on h.rect_user=u2.username left join sec_user u3 on h.concert_user=u3.username left join hd_rectorder_proc p on h.hd_proc_id = p.proc_id where 1=1 <if test="hd_proc_id!=null and hd_proc_id>0"> and h.hd_proc_id=#{hd_proc_id} </if> </select> 有这样一条sql 其中hd_proc_id有0,1,2,3,4,5,6 其中0表示未处置 1,2,3,4,5都是表示已经处置 但是在不同的状态 如何获取在处置的数据 怎么改进
时间: 2024-04-20 18:24:22 浏览: 111
根据这条SQL语句,可以看出`hd_proc_id`字段表示处置的状态,其中0表示未处置,而1、2、3、4、5表示已经处置但是在不同的状态。如果你想获取已处置的数据,可以将条件修改为`hd_proc_id>0`,这样就可以排除未处置的数据,只获取已处置的数据。
改进的话,可以考虑将条件逻辑进行优化,使用更直观的方式表示已处置的状态。比如,可以使用一个字段来表示处置状态,而不是使用多个数字来表示不同的状态。这样可以简化SQL语句,并且更易于理解和维护。
另外,可以考虑使用索引来优化查询性能,特别是在处理大量数据时。根据具体情况,可以为关键字段添加索引,以加快查询速度。
总结起来,你可以按照以上建议进行改进:
1. 修改条件为`hd_proc_id>0`以获取已处置的数据。
2. 考虑使用一个字段来表示处置状态,简化SQL语句。
3. 根据具体情况使用索引来优化查询性能。
相关问题
<?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。
<?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.de.debook.mapper.CategoryMapper"> <resultMap id="BaseResultMap" type="com.de.debook.entity.Category"> <id column="id" jdbcType="INTEGER" property="id"/> <result column="name" jdbcType="VARCHAR" property="name"/> </resultMap> <resultMap id="StatisticsResultMap" type="com.de.debook.entity.Statistics"> <result column="name" jdbcType="VARCHAR" property="name"/> <result column="value" jdbcType="VARCHAR" property="value"/> </resultMap> <sql id="Base_Column_List"> id, name </sql> <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/> from category where id = #{id,jdbcType=INTEGER} </select> <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer"> delete from category where id = #{id,jdbcType=INTEGER} </delete> <insert id="insert" parameterType="com.de.debook.entity.Category"> insert into category (id, name) values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}) </insert> <insert id="insertSelective" parameterType="com.de.debook.entity.Category"> insert into category <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null"> id, </if> <if test="name != null"> name, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null"> #{id,jdbcType=INTEGER}, </if> <if test="name != null"> #{name,jdbcType=VARCHAR}, </if> </trim> </insert> <update id="updateByPrimaryKeySelective" parameterType="com.de.debook.entity.Category"> update category <set> <if test="name != null"> name = #{name,jdbcType=VARCHAR}, </if> </set> where id = #{id,jdbcType=INTEGER} </update> <update id="updateByPrimaryKey" parameterType="com.de.debook.entity.Category"> update category set name = #{name,jdbcType=VARCHAR} where id = #{id,jdbcType=INTEGER} </update> <select id="selectAll" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/> from category order by id asc </select> <select id="selectStatistics" resultMap="StatisticsResultMap"> SELECT t1.name as name, COUNT(*) as value FROM category t1, debook t2 WHERE t1.id = t2.category_id GROUP BY t1.id order by t1.id asc </select> </mapper>
这是一个 MyBatis 的 Mapper 文件,用于映射实体类 Category 到数据库表 category。其中包括了一些 SQL 语句,如 selectByPrimaryKey、deleteByPrimaryKey、insert、updateByPrimaryKeySelective 等,用于对数据表进行增删改查操作。还定义了两个结果映射 resultMap,用于将查询结果映射到实体类或自定义的统计类 Statistics 中。最后还定义了两个 select 语句,用于查询所有分类和分类的统计信息。
阅读全文