为了账号安全,请及时绑定邮箱和手机立即绑定

想了解一下,mysql where 1什么意思?

/ 猿问

想了解一下,mysql where 1什么意思?

慕森王 2019-11-11 13:10:30
查看完整描述

3 回答

?
慕田峪4524236

这要看你如何用它,毕仅where 1=1这种表达式真假判断是要产生系统开销的。用得其所可提高效率减小开销,反之亦然。例如:

select * from t1 where 1=1;
等效于
select * from t1;
前者where 1=1必然为真,此判断为画蛇添足,属于无用功、徒增系统开销。

如果只需要查看数据表字段信息无需查看具体记录,那么下列写法将非常可取
select * from t1 where 1<>1;
这样系统将直接输出空记录集,而不会花费资源检索具体的记录数据到内存中,这无疑会提高了效率。



查看完整回答
反对 回复 2019-11-16
?
倚天杖

SELECT b.id FROM t_address a, t_unit b WHERE b.utj=1 AND b.ufreeze=2 AND a.id=b.uads and a.sid=3
就这个啦!!
原因很简单
b.utj=1不满足的话,那么系统就直接找下一个数据
用的in的话,如果第一个不满足,那么就匹配第二个,第二个不满足,在匹配第三个
,全部不匹配 才找下一条数据!!
这个就可以看到了,可能用IN的话,效率可能会减慢3倍,打个比方

查看完整回答
反对 回复 2019-11-16
?
繁华开满天机

第一种 exists与not exists
select * from table1 t1 where exists(select columnName from table2 t2 where t1.columnName2 = t2.columnName2)
第二种,in,not in的用法
select * from table1 where columnName in(select columnName from table2 where columnNane = 'condition')
第三种,any,all与比较运算的用法
-- 与任意一个比较返回真
select * from table1 where columnName > any(select columnName from table2 where columnNane = 'condition')
-- 与所有的值比较返回真
select * from table1 where columnName > all(select columnName from table2 where columnNane = 'condition')

查看完整回答
反对 回复 2019-11-16

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信