bug:筛选条件时,筛选出了不符合电影类型的影片
问题如下:
数据库的film表中的字段type_ids类型是varchar,他用来存储电影的类型id,如:type_ids里面存的是[1,12,15],说明他存的是电影类型中id为1,12,15的电影类型。
现在有一个功能是多条件筛选电影,根据类型筛选时,由于参数typeId类型为字符串,在查询时,使用模糊查询<if test="typeId != null"> and type_ids like concat('%', #{typeId}, '%')</if>并不能精准查询,比如我传过去的typeId为1,而数据库中type_ids存的是[12,13],结果他把id为12,13的也查出来了

解决:

FIND_IN_SET用来解决字符串中逗号的问题,用于在逗号分隔的字符串中查找指定的值,并返回其在字符串中的位置
REPLACE 函数是 MySQL 中的字符串替换函数,其语法为 REPLACE(str, from_str, to_str),作用是将字符串 str 中所有的 from_str 替换为 to_str。
