sql 请问如何在输入查询条件为空的情况下返回所有的数据
例如 select name from student where stuid = ''
目前的要求就是在输入stuid为空的情况下返回所有的name,该如何改以上的语句
你好,是这样的,你传入stuid的时候,要判断stuid是否为空字符串,空字符串和空值时这样写 select name from student
只是用纯sql? 一般不是程序层面会控制
mysql :select name from student WHERE IF(stuid ='',1, stuid ='058cc21138fd3c641a15f1e5b9fa1891');
解释:当stuid为空时,取全部数据,否则取传入的stuid 值的数据, stuid ='058cc21138fd3c641a15f1e5b9fa1891' 这个你可以根据你自己表中的id来
你在拼接sql的时候就要判断它是不是空啊,是空就别把条件拼接进来
这样写:
select name from student <if test = 'stuid !=null' >where stuid = #{stuid}</if>
可以通过mapper映射文件中进行非空判断处理。
mapper文件中添加按照stuid查询方法:
List<String> findStudentName(String stuid);
mapper映射配置文件中添加查询方法:
<select id="findStudentName" resultType="string">
select name from student
<where>
<if test="stuid != '' and stuid != null">
stuid = #{stuid}
</if>
</where>
</select>
如有帮助欢迎采纳!