在 MyBatis 中,你可以使用 <if>
标签和 find_in_set()
函数来实现对某个字段进行查询的功能
user
的表,并且想要根据某个字段(例如 hobbies
)来查询数据: SELECT * FROM user
<where>
<if test="hobby != null and hobby!=''">
FIND_IN_SET(#{hobby}, hobbies)
</if>
</where>
</select>
这里,我们使用标签包裹查询条件,然后使用
标签来判断传入的参数
hobby是否为空或者为空字符串。如果不为空,则使用
FIND_IN_SET()函数来查询
hobbies` 字段中包含该爱好的所有用户。
public interface UserDao {
List<User> findUsersByHobby(@Param("hobby") String hobby);
}
@Service
public class UserService {
@Autowired
private UserDao userDao;
public List<User> findUsersByHobby(String hobby) {
return userDao.findUsersByHobby(hobby);
}
}
现在,当你调用 findUsersByHobby()
方法时,MyBatis 将会根据传入的 hobby
参数在 user
表的 hobbies
字段中查询包含该爱好的所有用户。