数据库中如何判断某参数为空就不执行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等多种数据库连接途径。
如果是在数据库中判断参数,是在存储过程过程自定义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条件的主要内容,如果未能解决你的问题,请参考以下文章
oracle SQL查询中,如何在where中用条件语句,判断不同情况,追加不同的And条件?
oracle中的exists 和not exists 用法详解