在 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
字段中查詢包含該愛好的所有用戶。