sql语句中“where1=1”是什么意思?

 我来答
帐号已注销
2021-06-21 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:167万
展开全部

where 1=1是sql语句条件逻辑判断表达式,由于1=1成立,恒为真,该表达式1=1将始终返回"真"。

这段代码应该是由程序(例如Java)中生成的,where条件中 1=1 之后的条件是通过 if 块动态变化的。

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

where 1=1 是为了避免where 关键字后面的第一个词直接就是 “and”而导致语法错误。

SQL语句

中是SQL语句必须定义的部分,[]中是SQL语句可选择的部分,可以省略的。

所要定义的基本表的名称,一个表可以由一个或若干个属性(列)组成,但至少有一个属性,不允许一个属性都没有的表,这样不是空表的含义。多个属性定义由圆括号指示其边界,通过逗号把各个属性定义分隔开,各个属性名称互不相同,可以采用任意顺序排列,一般按照实体或联系定义属性的顺序排列,关键字属性组在最前面,这样容易区分,也防止遗漏定义的属性。

以上内容参考:百度百科-结构化查询语言

笃定资源
高粉答主

2018-03-10 · 关注我不会让你失望
知道小有建树答主
回答量:229
采纳率:100%
帮助的人:7.7万
展开全部

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)的写法将是非常可去取的,因为系统仅会读取结构信息,而不会将具体的表记录读入内存中,这无疑节省了系统开销。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吉祥二进制
高粉答主

2018-02-13 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84580

向TA提问 私信TA
展开全部
这段代码应该是由程序(例如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)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式