1 if (!"".equals(userDto.getHobby())) { 2 /* 3 1、将hobby分割为数组,调用FIND_IN_SET函数查询 4 2、trim()去掉文本两端多余的空格 5 3、FIND_IN_SET(str,strlist) 6 4、str 要查询的字符串,strlist 字段名 参数以”,”分隔 如 (1,2,6,8) 7 5、select * from user where 1=1 and FIND_IN_SET('运动',hobby) or FIND_IN_SET('音乐',hobby) 8 6、or或者其它条件 9 */ 10 String[] hobby = userDto.getHobby().split(","); 11 for (int i=0;i<hobby.length;i++){ 12 if (i==0){ 13 sql.append(" and FIND_IN_SET('").append(hobby[i].trim()).append("',hobby)"); 14 }else { 15 sql.append(" or FIND_IN_SET('").append(hobby[i].trim()).append("',hobby)"); 16 } 17 } 18 }