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

 我来答
哗哗哗哗111ef
高粉答主

2018-01-08 · 每个回答都超有意思的
知道大有可为答主
回答量:222
采纳率:96%
帮助的人:24.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方便程序逻辑处理用的。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式