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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql中where 之后怎么加if条件判断相关的知识,希望对你有一定的参考价值。

参考技术A

1、先看不加判断的sql语句怎么写。

2、我们看到where和and。也就是说,当username和sex都有值的时候 使用where和and在Mapper-User.xml文件中:

3、接下来讲解where、if标签含义:

4、where标签会自动判断前面是否有字段,如果有字段会使用and sex=$sex这个语句。

如果没有字段,and会被忽略直接跟在where后面。

也就是说,如果username为空但是sex不为空的话。输入的sql又是什么?

5、username和sex都存在的测试类:

6、执行后控制台输入的sql语句为:

7、如果username为空只有sex有值,会报错吗?

请看测试类:

8、再看,执行后输出的sql语句:

9、总结如下:

sql语句判断时间区间的问题

我想筛选出一个时间区间里面的数据
刚刚百度到一个CheckDate Between这个方法,
但是我这样写起来出错了,
http://zhidao.baidu.com/question/515206803.html
$check_sql = "SELECT id FROM $cxlm_table WHERE CheckDate Between '$yesterday' And '$nowdatetime' ";
输出之后是这样的
SELECT id FROM cx_cxlm WHERE ip = '127.0.0.1' AND CheckDate Between '2013-08-11 12:14:01' And '2013-08-12 12:14:01'
给这句话加上括号也没用,
报错信息是
#1054 - Unknown column 'CheckDate' in 'where clause'
被当作字段处理了
请问下sql语句里面判断时间区间的方法是什么?

1、首先,我们来定义一个时间字段的参数,暂且命名为Date,语句为:declare @Date datetime。

2、给@Date这个参数进行赋值,的getDate(),语句为: set @Date=getDate()。

3、DATEADD() 函数在日期中添加或减去指定的时间间隔,语法为:DATEADD(datepart,number,date),datepart参数是合法的日期表达式。number是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。

4、计算前一天的算法语句:select dateAdd(day,-1,@Date) as 'Yesterday',这里的as后面的内容只是定义查询出来列的名称而已。

5、最后,我们来执行一下这个查询语句。

6、后一天的算法语句如出一辙,只是需要将dateAdd中的时间间隔数进行一下调整即可。

参考技术A SQL 里面判断时间区的方法是 between and
如:有字段更新时间:updatetime 类型 datetime ,判断时间区'2013-08-11 12:14:01' 到 '2013-08-12 12:14:01'之前的,语句:
SELECT id FROM cx_cxlm WHERE ip = '127.0.0.1' AND updatetime Between '2013-08-11 12:14:01' And '2013-08-12 12:14:01'

#1054 - Unknown column 'CheckDate' in 'where clause'
不知道列CheckDate本回答被提问者采纳
参考技术B 你看看有没有checkdate这个字段

以上是关于sql中where 之后怎么加if条件判断的主要内容,如果未能解决你的问题,请参考以下文章

在sql的where条件下怎么加判断语句?

sql怎么用两个条件判断,让其中另一个值等于别的

sql条件判断语句

SQL语句关于where判断问题

SQL语句where多条件查询怎么写?

动态SQL之<where;<if;条件判断