<select id="xcxGetAnnounce" resultMap="policyVo"> SELECT zhengce.id,zhengce.title, zhengce.dispatch_date,zhengce.declare_date, zhengce.fw_department <if test="sysType != null and sysType == 3 and keyWord!=null and keyWord!=''"> ,MATCH(zhengce.title) AGAINST(REPLACE(#{keyWord},' ','')) AS score </if> FROM oa_zhengce zhengce WHERE type=2 AND zhijian_status=5 AND status=1 AND ( zhengce.zc_jibie=1 OR <choose> <when test="sysType != null and sysType == 3"> zhengce.area='440604' OR ( zhengce.zc_jibie=2 and zhengce.prov='440000') OR (zhengce.zc_jibie=3 and zhengce.city='440600') </when> <when test="sysType != null and sysType == 2"> zhengce.street='440604010' OR ( zhengce.zc_jibie=2 and zhengce.prov='440000') OR (zhengce.zc_jibie=3 and zhengce.city='440600') OR (zhengce.zc_jibie=4 and zhengce.city='440604') </when> <otherwise> zhengce.city=#{city} OR ( zhengce.zc_jibie=2 and zhengce.prov=#{prov}) </otherwise> </choose> ) <choose> <when test="sysType != null and sysType == 2 and keyWord!=null and keyWord!=''"> AND REPLACE(zhengce.title,' ','') like CONCAT('%',REPLACE(#{keyWord},' ',''),'%') </when> <when test="sysType != null and sysType == 3 and keyWord!=null and keyWord!=''"> AND MATCH(zhengce.title) AGAINST(REPLACE(#{keyWord},' ','')) </when> </choose> <choose> <when test="keyWord==null or keyWord==''"> ORDER BY zhengce.dispatch_date desc,zhengce.id </when> <otherwise> ORDER BY score desc ,zhengce.dispatch_date desc, zhengce.id desc </otherwise> </choose> </select>
时间: 2024-02-15 19:28:54 浏览: 111
MyBatis学习-映射文件标签篇(select、resultMap).rar_alikeett_blueaod_mybatis
这是一个 MyBatis 的 XML 映射文件,用于查询 oa_zhengce 表中的政策数据。它包含一个 SELECT 语句,其中包含多个 SQL 语句片段,用于根据不同的输入参数动态构建查询条件。
具体来说,该 SELECT 语句将返回 oa_zhengce 表中类型为 2、审核状态为 5、发布状态为 1,且符合特定级别和地区要求的政策数据。其中,如果输入参数 sysType 为 3,且输入参数 keyWord 不为 null 或空字符串,则会使用 MATCH AGAINST 函数对政策标题进行全文检索,并按照检索得分从高到低排序;否则,将按照发布日期和政策 id 从新到旧排序。
该 SELECT 语句还包含多个 SQL 片段,可根据不同的输入参数和条件动态构建查询条件。例如,如果输入参数 sysType 为 2,则政策所在的地区必须为指定的街道或城市,否则政策所在的地区必须为指定的城市或省份。如果输入参数 keyWord 不为 null 或空字符串,则还需要对政策标题进行模糊匹配或全文检索。
阅读全文