Java 開發中,使用 mybatis-plus 處理一個復雜 sql 字符串匹配查詢時遇到了難題。問題場景是匹配一個可選課程的條件字段 condition 與用戶輸入的 cond 字段。其中 condition 為逗號分隔的必修課程列表,而 cond 為逗號分隔的用戶已選課程。任務是編寫一個查詢,只要條件中包含用戶所選的任意一門課程即可匹配。
sql 解決方案
可以使用以下 sql 語句來實現:
select * from college_course where find_in_set('語文', condition) and find_in_set('音樂', condition)
此查詢將查找 condition 中同時包含語文和音樂兩門課程的可選課程。
mybatis-plus 集成
要在 mybatis-plus 中使用此查詢,可以在 querywrapper 中設置條件:
QueryWrapper<CollegeCourse> wrapper = new QueryWrapper<>(); wrapper.eq("condition", "語文,音樂"); List<CollegeCourse> courses = collegeCourseMapper.selectList(wrapper);
此代碼將檢索同時包含語文和音樂課程的可選課程列表。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END