zoukankan      html  css  js  c++  java
  • SQL 语句中 where 条件后 写上1=1 是什么意思

    前言

    where 1=1是sql语句条件逻辑判断表达式,由于1=1成立,恒为真,该表达式1=1将始终返回"真"。这种写法实际目的是为了获取逻辑值"True",其实诸如2=2, 1+2=3,'中'='中'等之类的写法都可以返回逻辑值"True",只不过1=1的运算开销更小,故被应用的最普遍。

    例子

    下面例子将有助于理解有关概念:

    1) select * from t1 where 1=1;

    -- 实际等效于select * from t1 where true;

    -- 语句将返回t1中所有的记录行

    2) select * from t1 where 1<>1;

    -- 实际等效于 select * from t1 where false;

    -- 语句将返回空记录集

    说明

    例1)实际上等同于不加任何筛选条件,有些画蛇添足,where 1=1的实际意义不如where 1<>1来得有用,当我们只需要获取表的字段(结构)信息,而不需要理会实际保存的记录时,例2)的写法将是非常可去取的,因为系统仅会读取结构信息,而不会将具体的表记录读入内存中,这无疑节省了系统开销。

    注意事项

    这个SQL语句很明显是全表扫描,需要大量的IO操作,数据量越大越慢,

    建议查询时增加必输项,即where 1=1后面追加一些常用的必选条件,并且将这些必选条件建立适当的索引,效率会大大提高 

    关注公众号:UP技术控   获取更多资讯

  • 相关阅读:
    下载文件
    文件上传后台
    触发器
    存储过程
    火狐浏览器不能获取 event,解决js报错问题
    Oracle 数据库--一个用户同步的sql
    基于二进制的权限控制
    自定义jsp标签
    http,socket和websocket
    正向代理和反向代理
  • 原文地址:https://www.cnblogs.com/lyl6796910/p/14005030.html
Copyright © 2011-2022 走看看