
mysql 中AND的优先级高于OR,所以在查询时,会优先执行 AND 条件,除非使用()来将一个 AND 和 OR 括起来,这样才能使得OR得以按照语句的顺序执行
SELECT * FROM t_json_species AND englishName like CONCAt('%',#{englishName},'%') OR sameName like CONCAt('%',#{englishName},'%') AND host like CONCAt('%',#{host},'%') AND position like CONCAt('%',#{position},'%') AND location like CONCAt('%',#{location},'%') AND phylumName = #{phylumName} AND className = #{className} AND orderName = #{orderName} AND familyName = #{familyName} AND jenusName = #{jenusName} AND (name like CONCAt('%',#{name},'%') OR sameName like CONCAt('%',#{name},'%'))