SQL语句当查询条件为空时默认查询全部数据,不为空是则按照条件进行查询 您所在的位置:网站首页 sql查询数据库id SQL语句当查询条件为空时默认查询全部数据,不为空是则按照条件进行查询

SQL语句当查询条件为空时默认查询全部数据,不为空是则按照条件进行查询

2023-08-24 10:10| 来源: 网络整理| 查看: 265

        最近做web的时候遇到一个问题,在对列表数据进行查询时,会有多个查询条件,有些查询条件有数据,有些查询条件则为空,某个查询条件为空时则要默认查询此字段下的全部数据,这样的SQL查询语句该怎么写呢?以下介绍两种写法。

1. 朴素的写法: select * from 表 where (字段=条件 or 条件='')

        这条SQL语句的意思就是当条件不为空时SQL语句等价于:select * from 表 where 字段=条件; 当条件为空时SQL语句等价于:select * from 表 where ''='';这样就实现了当查询条件为空时默认查询全部数据,当查询结果非空时则查询对应的数据。

下面是一个简单的例子:

在这里插入图片描述         这是一张简单的学生信息表,假设查询时允许输入的条件有两个,分别是sex和math,假设用户只输入的sex的值’F’,并没有输入math对应的值,那么就应该对表中sex的值为’F’的数据进行查询,因为math输入的值为空,则默认查询math等于任何值的数据,则SQL语句的编写应该如下:

SET @sex='F'; SET @math=''; SELECT * FROM student_test WHERE (sex=@sex OR @sex='') AND (math=@math OR @math='');

查询的结果:

在这里插入图片描述

2. 运用sql的like关键字实现模糊查询功能

实现上述查询功能的SQL语句用like关键字实现:

SELECT * FROM student_test WHERE (字段 LIKE '%条件%');

其中“%”表示可以为任意字符,这句SQL语句也不难理解,这样一样可以处理条件为空的情况。

依旧是处理上面的例子,以下是运用like关键字的SQL语句:

SELECT * FROM student_test WHERE (sex LIKE '%F%') AND (math LIKE '%%');

查询的结果:

在这里插入图片描述

        这样就实现了当查询条件为空时默认查询全部数据,不为空是则按照条件进行查询。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有