SQL 语句中 where 条件后 写上1=1 是什么意思

前言

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

 

例子

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

1) select * from t1 where 1=1;索引

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

-- 语句将返回t1中全部的记录行效率

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

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

-- 语句将返回空记录集技术

 

说明

例1)实际上等同于不加任何筛选条件,有些多此一举,where 1=1的实际意义不如where 1<>1来得有用,当咱们只须要获取表的字段(结构)信息,而不须要理会实际保存的记录时,例2)的写法将是很是可去取的,由于系统仅会读取结构信息,而不会将具体的表记录读入内存中,这无疑节省了系统开销。数据

 

注意事项

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

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

 

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

相关文章
相关标签/搜索