技术背景:Java ,MySql,ORM框架是MyBatis-Plus
问题场景:
`老师选修课,选修课专门有一个字段condition(varchar(256)),
里面用逗号拼接可报名的必修课,然后用户有一个cond字段(varchar(256)),
现在需要用QueryWrapper来写一个SQL`
我的疑惑:
比如有一个大学钢琴选修课,它的condition是语文,音乐,英语。
说明学生只要必修过语文,音乐和英语任意一个,都可以选修大学钢琴课。
用SQL中来匹配单个字符是有方法的,比如find_in_set,locate
select * from college_course where find_in_set('音乐', condition);
select * from college_course where locate('音乐', condition);
但我的cond是多个的,比如 cond=语文,音乐
如何让condition 中 可以匹配到cond以,分隔的 语文和音乐
另外如何应用到Mybatis-Plus中,写道QueryWrapper中去
希望别告诉我用like,就是因为like太差才想其他办法的
两个问题:
1-如何从SQL上实现 condition匹配以,为分隔字符串中的任意一个,只要匹配到任意一个就行
2-如何应用到Mybatis-Plus中去
多个也很简单的啊
不就好了吗?
其实你做个全文索引的话就可以:
就挺快的