在MyBatis中使用in查詢進(jìn)行多值匹配,可以使用foreach標(biāo)簽來動(dòng)態(tài)生成多個(gè)條件。以下是一個(gè)示例:
假設(shè)有以下數(shù)據(jù)庫(kù)表:
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50)
);
現(xiàn)在要查詢id在1, 2, 3這三個(gè)值中的用戶,可以編寫如下的Mapper接口方法:
public interface UserMapper {
List<User> selectUsersByIds(List<Integer> ids);
}
然后在對(duì)應(yīng)的Mapper.xml文件中編寫SQL語(yǔ)句:
<select id="selectUsersByIds" resultType="User">
SELECT * FROM users
WHERE id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
在這個(gè)例子中,ids是一個(gè)Listid IN (1, 2, 3)
的SQL語(yǔ)句。
最后,在Java代碼中調(diào)用這個(gè)方法:
List<Integer> ids = Arrays.asList(1, 2, 3);
List<User> users = userMapper.selectUsersByIds(ids);
這樣就可以使用in查詢進(jìn)行多值匹配了。