MyBatis 使用 FIND_IN_SET 函数查询包含指定 knowledgeId 的数据
要实现通过传入的 knowledgeIds 拆分后进行查询,可以按照以下步骤进行操作:
- 在 MyBatis 的 Mapper 接口中定义一个方法,该方法接受一个参数 knowledgeIds,类型为 String。
public interface YourMapper {
YourEntity selectByKnowledgeIds(@Param("knowledgeIds") String knowledgeIds);
}
- 在对应的 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>
- 在代码中调用该方法,并传入拆分后的 knowledgeIds。
String knowledgeIds = '75657,11331';
String[] ids = knowledgeIds.split(",");
String formattedIds = String.join(",", ids);
YourEntity result = yourMapper.selectByKnowledgeIds(formattedIds);
这样,就可以通过传入的 knowledgeIds 拆分后,使用 IN 语句进行查询,可以查询到包含指定 knowledgeId 的数据。注意,上述示例中的表名、实体类名等需要根据实际情况进行替换。
原文地址: https://www.cveoy.top/t/topic/qAHy 著作权归作者所有。请勿转载和采集!