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);
样例