sql 请问如何在输入查询条件为空的情况下返回所有的数据

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>

如有帮助欢迎采纳!