年轻人不讲武德,where 1=1 是什么鬼?
作者:三哥
来源:cloud.tencent.com/developer/article/1475146
这段代码应该是由程序(例如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”而导致语法错误。
动态SQL中连接AND条件
where 1=1 是为了避免where 关键字后面的第一个词直接就是 “and”而导致语法错误。
where后面总要有语句,加上了1=1后就可以保证语法不会出错!
select * from table where 1=1
因为table中根本就没有名称为1的字段,所以该SQL等效于select * from table,
这个SQL语句很明显是全表扫描,需要大量的IO操作,数据量越大越慢,
建议查询时增加必输项,即where 1=1后面追加一些常用的必选条件,并且将这些必选条件建立适当的索引,效率会大大提高
「拷贝表」
create table table_name as select * from Source_table where 1=1;
「复制表结构」
create table table_name as select * from Source_table where 1 <> 1;
特别推荐一个分享架构+算法的优质内容,还没关注的小伙伴,可以长按关注一下:
长按订阅更多精彩▼如有收获,点个在看,诚挚感谢
年轻人不讲武德,where 1=1 是什么鬼?相关推荐
- 年轻人不讲武德有多可怕?
1 孩子,走你! ▼ 2 这都是什么阴间燃料 (素材来源网络,侵删) ▼ 3 年轻人不讲武德 (素材来源网络,侵删) ▼ 4 当你偷瞄喜欢的男生 ▼ 5 贝多芬:我入土这么都多年了 (素材来源网络,侵 ...
- cout不明确什么意思_年轻人不讲武德是什么梗和意思 年轻人不讲武德梗出处
太极大师马保国的一句"年轻人不讲武德,偷袭我这个69岁的老人家"最近火了,很多人都在模仿这个句式,用法还挺广泛.那么年轻人不讲武德是什么梗?年轻人不讲武德梗的出处是什么?下面小编带 ...
- 年轻人不讲武德,TDengine边缘侧数据存储方案挑战SQLite
上周,涛思数据与EMQ在线上Meetup上联合发布了工业互联网一体化解决方案,基于TDengine.EMQ X搭建一个集工业数据采集.汇聚.清洗.存储分析以及可视化展示等能力于一体的轻量级边缘计算工业 ...
- 再见,米哈游!原神社区防f12控制台调试代码全解(年轻人不讲武德)
前言 刚刚逛原神社区,不经意间按到了 f12 打开了控制台,突然屏幕暗了,发生甚么事了! 我一看,嗷,原来是进到无限 debbuger 调试了,传统审查讲究点到为止,用了 debbuger 这还了得, ...
- 年轻人不讲武德,竟用Python让马老师表演闪电五连鞭!
11月份的头条,是属于马保国的. 一位69岁的老同志,惨遭年轻人偷袭,不讲武德. 看看把老同志欺负的... 要不是马老师讲仁义讲道德,甩手就是一个五连鞭. 哈哈哈,所以本期我们就用Python给马保国 ...
- 年轻人不讲武德,一起聊聊List集合(一)
文章目录 前言 一.List类图 二.源码剖析 1. ArrayList(此篇详解) 2. LinkedList 3. Vector 4. CopyOnWriteArrayList ~~ 码上福利 ...
- 年轻人不讲武德,一起聊聊List集合(三)
文章目录 前言 一.List类图 二.源码剖析 1. Vector(此篇详解) 2. ArrayList 3. LinkedList 4. CopyOnWriteArrayList ~~ 码上福利 ...
- 年轻人不讲武德!卢伟冰脱口秀:小米高端之路好自为之
11月26日,Redmi正式发布千元精品Note系列新机,三剑齐发:Note 9 Pro.Note 9和Note 9 4G三款产品. Redmi Note 9 Pro国内首发旗舰规格的一亿像素相机HM ...
- 年轻人不讲武德,一起聊聊List集合(五)
文章目录 前言 一.List类图 二.集合总结 1. ArrayList与Vector集合区别 2. ArrayList与CopyOnWriteArrayList集合区别 3. 时间复杂度 / 空间复 ...
最新文章
- checkbox居中 editor_C1FlexGrid绑定自定义Editor-C1CheckBox
- 数据科学和机器学习中使用的最多的20个R语言包
- Quartz-Trigger详解
- 后台和前台对转义符号'/'同时起作用的例子
- jQuery DOM/属性/CSS操作
- 通知 notification
- 浅谈UWB室内定位(二)
- Swift - 将String类型的数字转换成数字类型
- notifier chain — 内核通知链【转】
- idea 格式化vue代码,检查语法
- 高德地图 热力图 清空地图
- 什么是IT人员外包?
- 麦吉尔电子计算机工程专业好么,多大/UBC/麦吉尔,什么专业最厉害?
- python matplotlib 基础练习:画一元二次函数
- L TEXT和 _T的区别
- matlab用到两个工具箱有重复函数文件处理方法
- 图像分割之常用损失函数-Dice Loss
- 计算机操作员初级试题及答案,计算机操作员初级考试试题
- 虚拟麦克风音频输入_全新职业级 罗技G PRO X游戏耳机麦克风震撼上市
- 泰拳的快感之二——我看《冬荫功》
热门文章
- 【C语言】用宏实现将一个整数的二进制位的奇数位和偶数位交换
- TensorFlow中的ResNet残差网络实战(2)
- 网络协议分层_接口测试之网络分层和数据
- BZOJ 2132 圈地计划(最小割)【BZOJ 修复工程】
- 计算机应用公共课程,公共基础课程中计算机应用管理制度
- H - Fibonacci POJ - 3070 (矩阵快速幂)
- 简单理解重量级锁、轻量级锁、偏向锁
- 108.将有序数组转换为二叉搜索树
- java 继承 注解_在java中实现组合注解原理分析(注解继承)
- python中基本程序结构_关于Python 程序格式框架的描述,正确的是( )