要实现通过传入的 knowledgeIds 拆分后进行查询,可以按照以下步骤进行操作:

  1. 在 MyBatis 的 Mapper 接口中定义一个方法,该方法接受一个参数 knowledgeIds,类型为 String。
public interface YourMapper {
    YourEntity selectByKnowledgeIds(@Param("knowledgeIds") String knowledgeIds);
}
  1. 在对应的 Mapper XML 文件中,编写 SQL 语句,使用 FIND_IN_SET 函数来匹配包含指定 knowledgeId 的数据。同时,将 knowledgeIds 拆分成多个 id,使用 #{knowledgeIds} 来表示。
<select id="selectByKnowledgeIds" parameterType="java.lang.String" resultMap="YourEntityResultMap">
    SELECT *
    FROM your_table
    WHERE FIND_IN_SET(knowledgeId, #{knowledgeIds})
</select>
  1. 在代码中调用该方法,并传入拆分后的 knowledgeIds。
String knowledgeIds = '75657,11331';
String[] ids = knowledgeIds.split(",");
String formattedIds = String.join(",", ids);

YourEntity result = yourMapper.selectByKnowledgeIds(formattedIds);

这样,就可以通过传入的 knowledgeIds 拆分后,使用 IN 语句进行查询,可以查询到包含指定 knowledgeId 的数据。注意,上述示例中的表名、实体类名等需要根据实际情况进行替换。

MyBatis 使用 FIND_IN_SET 函数查询包含指定 knowledgeId 的数据

原文地址: https://www.cveoy.top/t/topic/qAHy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录