数据库中如何判断某参数为空就不执行where条件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库中如何判断某参数为空就不执行where条件相关的知识,希望对你有一定的参考价值。

mysql数据库为例。

在存储过程中使用判断一个参数,例参数为vtitleSelect a.*

from trn_res_courseware a

where 1 = 1 and

IF (vtitle is NULL, 0 = 0, a.title like CONCAT('%'+vtitle+'%'));

vtitle 是参数。

如果参数为空,则不执行(0=0永远成立),不为空,则执行 a.title like CONCAT('%'+vtitle+'%')) 查询条件。

扩展资料:

系统特性:

1、mySQL使用 C和 C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。

2、支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。

3、为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、Java、Perl、php、Eiffel、Ruby,.NET和 Tcl 等。

4、支持多线程,充分利用 CPU 资源。

5、优化的 SQL查询算法,有效地提高查询速度。

6、既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。

参考资料来源:百度百科-mySQL

7.提供多语言支持,常见的编码如中文的 GB 2312、BIG5,日文的 Shift_JIS等都可以用作数据表名和数据列名。

8.提供 TCP/IP、ODBC 和 JDBC等多种数据库连接途径。



参考技术A 看你使用的什么数据库了。而且问题好像没描述清楚。
如果是在数据库中判断参数,是在存储过程过程自定义function中么?数据库里面普通的SQL没法传递参数的。
以Mysql数据库为例。
在存储过程中使用判断一个参数,例参数为vtitle

Select a.*
from trn_res_courseware a
where 1 = 1 and
IF (vtitle is NULL, 0 = 0, a.title like CONCAT('%'+vtitle+'%'));

vtitle 是参数。
如果参数为空,则不执行(0=0永远成立),
不为空,则执行 a.title like CONCAT('%'+vtitle+'%')) 查询条件。
参考技术B $error=“”;
if(empty(变量1))
$error="请输入";

if(empty($error))
执行where语句
参考技术C 是oralce吗?
是在写存储过程中出现的问题吗?

SQL语句中连接on条件和where条件的执行顺序

参考技术A 首先,来看下面的SQL查询语句

我期望的结果是:表a的数据全部展示出来,然后,过滤掉不符合表b条件的结果。
但是,答案却出乎我的意料,所有数据都被过滤掉了,最终结果并不符合left join的语义,表a是主表,无论如何是应该展示出来的,但是并没有。
问题出在哪里呢?

这里牵扯到的是sql语句中on后的条件和where后的条件的执行顺序问题。

这里,有必要再次明确一下left join...on... 语法的准确含义。

有了上面的基础知识,就可以进一步去理解阐述了。

有时候,很简单的问题,却并不简单。回头看,还是对基础概念把握的不够明晰,有模糊的地方。
这里的on条件和where条件的作用是完全不同的。on条件不具备过滤作用,只做判断。而where条件不仅做判断,还要对结果进行过滤。

参考自: https://www.cnblogs.com/dancesir/p/7600265.html

以上是关于数据库中如何判断某参数为空就不执行where条件的主要内容,如果未能解决你的问题,请参考以下文章

SQL中where条件如何判断某个字段有没有

oracle SQL查询中,如何在where中用条件语句,判断不同情况,追加不同的And条件?

Exists 和Not Exists使用

oracle中的exists 和not exists 用法详解

SQL数据库如何写判断数据为空就添加内容,有内容就更新,有相同内容就+1,这代码怎么写。

sql中where 之后怎么加if条件判断