MySql查询所有字段不为空值的数据及Mybatis的#号和$符的区别引起的问题
1.MySql查询所有字段不为空值的数据 搜了一上午搜不到,最后用Mybatis的foreach标签,先查询出表字段, SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns WHERE table_name='lltest' 然后传入了另一条SQL中,使用foreach标签完成了这个操作。 <select id ="getNotNullData" resultType ="com.example.bean.LlTest" > SELECT * FROM lltest WHERE <foreach collection ="list" open ="" close ="" separator ="AND" item ="item" > ${item} IS NOT NULL </foreach> </select> 2.#号和$符号的区别 在使用foreach的时候,发现使用#号来获取字段名时,查询到的结果跟mysql直接查询的结果不一样,会查询出所有数据,感觉没有条件限制。 这个原因是#号会把获取到的值加上双引号,当字符串来使用,而我循环的是字段名,字段名不能用双引号。改为$符号就可以了。 #相当于对数据 加上 双引号,$相当于直接显示数据 3.对比: ###使用#号时log4j打印的SQL语句 SELECT * FROM