在工作中有时候会遇上这样的查询,查询的数据列不定,是根据前台传过来的一个list来动态获取的,如果这个list传过来的是表中的列名,那么可以简单的使用select <foreach collection="codes" item="item" open="" separator="," close="">
#{item, jdbcType=VARCHAR} </foreach> from tablename这样的方法做查询。
但是有的时候传过来的是某个属性的不同值的list,却要把这个不同值当作查询的列名时,容易让人头疼,实际上这种查询也是可以巧用mybatis的查询解决的,示例如下:
<select id="querySumList" parameterType="java.util.Map" resultType="java.util.Map" >
SELECT
<foreach collection="codes" item="item" open="" separator=""
close="" >
<if test="item!=null and item != ''">