mybatis动态查询语句FIND_IN_SET()方法

<select id="selectList" resultMap="BaseResultMap" parameterType="com.xxx.config.InfoDO">
        /**TerminalInfoMapper.selectList*/
        select
        <include refid="Base_Column_List"/>
        from t_info
        <where>
            <if test="solutionNo != null">
                AND FIND_IN_SET (#{solutionNo,jdbcType=VARCHAR}, SOLUTION_NO)
            </if>
        </where>
    </select>

该MyBatis语句是一个动态SQL语句,其作用是在数据库中执行一个带有"WHERE"子句的查询操作。该查询的条件基于两个因素:
一个叫做"test"属性的布尔变量和名为"SOLUTION_NO"的列。 如果变量"solutionNo"不为null,这个条件语句将会执行。
在WHERE名称列表中的查询语句中,将会检查"SOLUTION_NO" 列中是否包含一个值等于变量"solutionNo"的值。如果包含,则该条件为true,并且该行将被返回作为结果。
这条语句的目的是为了筛选出包含指定解决方案编号的数据行,这对于需要从数据库中获取特定解决方案相关信息的应用程序非常有用。

上述语句改成的sql语句

SELECT *
FROM t_info
WHERE solutionNo IS NOT NULL AND FIND_IN_SET(solutionNo, SOLUTION_NO);

样例
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐