sql语句中where 1=1是什么意思?

如题所述

这段代码应该是由程序(例如Java)中生成的,where条件中 1=1 之后的条件是通过 if 块动态变化的。例如:
String sql="select * from table_name where 1=1";
if( conditon 1) {
sql=sql+" and var2=value2";
}
if(conditon 2) {
sql=sql+" and var3=value3";
}
where 1=1 是为了避免where 关键字后面的第一个词直接就是 “and”而导致语法错误。

基本说明:

1、这个SQL语句很明显是全表扫描,需要大量的IO操作,数据量越大越慢,建议查询时增加必输项,即where 1=1后面追加一些常用的必选条件,并且将这些必选条件建立适当的索引,效率会大大提高;

2、主要是一些程序员的为了拼凑动态的sql语句,如果使用不好会起到副作用的,是根据个人的一些习惯,是为了避免where 关键字后面的第一个词直接就是“and”而导致语法错误,是为了后面附加and方便程序逻辑处理用的。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答