mysql关键词搜索查询语句

mysql关键词搜索查询语句
前端传的数据
{“关键词”: “”,
“startTime”: “”,
“endTime”: “”}
用一个实例对象people接收
people有id, name, grade, phone, …很多属性
输入的关键词有可能是id, name, 或者grade

大家看下 下面 这个查询有没有毛病,怎么优化 ( /笑哭 )

select * from table
where 1=1

and id like concat (’%’, #{keyWords,jdbcType=CHAR}, ‘%’) or
name like concat (’%’, #{keyWords,jdbcType=VARCHAR}, ‘%’) or
grade like concat (’%’, #{keyWords,jdbcType=VARCHAR}, ‘%’)


or createTime between startTime and endTime