0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SQL语句中where条件后为什么要写上1=1

Wildesbeast 来源:今日头条 作者:Java耕耘 2020-02-15 14:51 次阅读

这段代码应该是由程序(例如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;

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SQL
    SQL
    +关注

    关注

    1

    文章

    764

    浏览量

    44127
  • 代码
    +关注

    关注

    30

    文章

    4787

    浏览量

    68589
收藏 人收藏

    评论

    相关推荐

    浅谈SQL优化小技巧

    作者:京东零售 王军 回顾:MySQL的执行过程回顾 MySQL的执行过程,帮助 介绍 如何进行sql优化。 (1)客户端发送一条查询语句到服务器; (2)服务器先查询缓存,如果命中缓存,则立即返回
    的头像 发表于 12-25 09:59 366次阅读

    如何使用SQL进行数据分析

    使用SQL进行数据分析是一个强大且灵活的过程,它涉及从数据库中提取、清洗、转换和聚合数据,以便进行进一步的分析和洞察。 1. 数据提取(Data Extraction) 选择数据源 :确定你要分析
    的头像 发表于 11-19 10:26 279次阅读

    SQL错误代码及解决方案

    SQL数据库开发和管理中,常见的错误代码及其解决方案可以归纳如下: 一、语法错误(Syntax Errors) 错误代码 :无特定代码,但通常会在错误消息中明确指出是语法错误。 原因 :SQL语句中
    的头像 发表于 11-19 10:21 1576次阅读

    常用SQL函数及其用法

    SQL 函数及其用法: 一、聚合函数(Aggregate Functions) 聚合函数对一组值执行计算,并返回单个值。 COUNT() 用途 :返回匹配指定条件的行数。 示例 : SELECT
    的头像 发表于 11-19 10:18 266次阅读

    飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之流程控制

    1条件语句 shell语句的流程控制与C语言不一样,流程控制中不能为空。 shell中if语法如下,其中confition表示条件判断式,
    发表于 09-04 10:12

    IP 地址在 SQL 注入攻击中的作用及防范策略

    SQL 注入是通过将恶意的 SQL 代码插入到输入参数中,欺骗应用程序执行这些恶意代码,从而实现对数据库的非法操作。例如,在一个登录表单中,如果输入的用户名被直接拼接到 SQL 查询语句中
    的头像 发表于 08-05 17:36 310次阅读

    如何限制IPD语句中的最大字节数?

    当数据可用时,我正在使用带有 IP 和 PORT 的扩展 IPD 语句。 我的问题是,如何限制 IPD 语句中的最大字节数? 当我尝试从服务器作为客户端检索数据时,响应包含大约 20k 的数据,在
    发表于 07-17 06:06

    鸿蒙TypeScript入门学习第6天:【条件语句

    条件语句用于基于不同的条件来执行不同的动作。 TypeScript 条件语句是通过一条或多条语句
    的头像 发表于 04-01 13:51 762次阅读
    鸿蒙TypeScript入门学习第6天:【<b class='flag-5'>条件</b><b class='flag-5'>语句</b>】

    SQL全外连接剖析

    SQL中的全外连接是什么? 在SQL中,FULLOUTERJOIN组合左外连接和右外连接的结果,并返回连接子句两侧表中的所有(匹配或不匹配)行。接下面sojson给大家详细讲解。   图解:SQL
    的头像 发表于 03-19 18:28 2235次阅读
    <b class='flag-5'>SQL</b>全外连接剖析

    两个控制器间SPI通信片选使能后为什么要过一段时间才收发数据?

    求助各位大佬,[抱拳]:两个控制器间SPI通信片选使能后为什么要过一段时间才收发数据?收发完数据后为什么过一段时间才拉高片选?如附图示时间段1和时间段2,片选控制设置的是软件模式,手动使能矢能片选
    发表于 03-13 08:13

    assign语句和always语句的用法

    Assign语句和Always语句是在硬件描述语言(HDL)中常用的两种语句,用于对数字电路建模和设计。Assign语句用于连续赋值,而Always
    的头像 发表于 02-22 16:24 2555次阅读

    查询SQL在mysql内部是如何执行?

    我们知道在mySQL客户端,输入一条查询SQL,然后看到返回查询的结果。这条查询语句在 MySQL 内部到底是如何执行的呢?本文跟大家探讨一下哈,我们先来看下MySQL基本架构~
    的头像 发表于 01-22 14:53 569次阅读
    查询<b class='flag-5'>SQL</b>在mysql内部是如何执行?

    深入探讨嵌入式C编程的goto语句

    什么是goto语句? goto 语句被称为 C 语言中的跳转语句。 用于无条件跳转到其他标签。它将控制权转移到程序的其他部分。 goto
    发表于 01-21 10:41 603次阅读
    深入探讨嵌入式C编程的goto<b class='flag-5'>语句</b>

    单片机if是什么语句

    单片机中的if语句是一种条件语句,用于根据不同的条件执行不同的代码块。在程序执行过程中,条件语句
    的头像 发表于 01-05 14:04 1792次阅读

    单片机中for语句的运用

    语句,它的基本结构如下: for (初始化语句; 条件表达式; 更新语句) {循环体;} for语句的执行流程: 运行初始化
    的头像 发表于 01-05 14:02 2442次阅读