java技术--数据库where条件

在编写where条件时,经常看到-1,0,1这些常量出现,这里简单做一个总结
1.where 1=1

   (1)就是为了拼接语句方便,并没有其余含义!
   (2)如果不加这个 1=1 ,那么在拼 sql 的时候要判断拼上去的第一个条件是不带 and 的,然而很多查询都是多条件
        组合查询的,并不知道哪一个条件会拼在第一个上,所以干脆把第一个条件写成 sql 认为的"true",
        其他所有条件都是 and拼接
   (3)等价于:select  *  from  table;

2.where id=-1

 (1)只是看表中的字段而已,为了查询速度快,所以特地加了个不成立的条件,没有表数据返回结果
 (2)-1一般都是特殊值,一般表示NULL等特殊的标记

3.where (id=-1 or -1=-1)

 (1)因为是or的关系,所以等价于 :select  *  from  table;

4.where 1=-1

(1)因为1=-1始终不成立,等价于2
(2)也相当于只送查看表中字段而已,没有表数据返回结果

5.where (id=1 or 1=-1)

(1)因为是or的关系,相当于:当id=1的数据不存在时,只显示表字段信息
                          当id=1的数据存在时,就返回条件查询结果
(2)当id=1的数据存在时,等价于:select * form where id=1;   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值