0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SQL語句中where條件后為什么要寫上1=1

Wildesbeast ? 來源:今日頭條 ? 作者:Java耕耘 ? 2020-02-15 14:51 ? 次閱讀

這段代碼應該是由程序(例如Java)中生成的,where條件中 1=1 之后的條件是通過 if 塊動態(tài)變化的。例如:

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”而導致語法錯誤。

動態(tài)SQL中連接AND條件

where 1=1 是為了避免where 關鍵字后面的第一個詞直接就是 “and”而導致語法錯誤。

where后面總要有語句,加上了1=1后就可以保證語法不會出錯!

select * from table where 1=1

因為table中根本就沒有名稱為1的字段,所以該SQL等效于select * from table,

這個SQL語句很明顯是全表掃描,需要大量的IO操作,數(shù)據(jù)量越大越慢,

建議查詢時增加必輸項,即where 1=1后面追加一些常用的必選條件,并且將這些必選條件建立適當?shù)?a target="_blank">索引,效率會大大提高

拷貝表

create table table_name as select * from Source_table where 1=1;

復制表結構

create table table_name as select * from Source_table where 1 <> 1;

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • SQL
    SQL
    +關注

    關注

    1

    文章

    766

    瀏覽量

    44169
  • 代碼
    +關注

    關注

    30

    文章

    4796

    瀏覽量

    68706
收藏 人收藏

    評論

    相關推薦

    淺談SQL優(yōu)化小技巧

    作者:京東零售 王軍 回顧:MySQL的執(zhí)行過程回顧 MySQL的執(zhí)行過程,幫助 介紹 如何進行sql優(yōu)化。 (1)客戶端發(fā)送一條查詢語句到服務器; (2)服務器先查詢緩存,如果命中緩存,則立即返回
    的頭像 發(fā)表于 12-25 09:59 ?479次閱讀

    如何使用SQL進行數(shù)據(jù)分析

    使用SQL進行數(shù)據(jù)分析是一個強大且靈活的過程,它涉及從數(shù)據(jù)庫中提取、清洗、轉換和聚合數(shù)據(jù),以便進行進一步的分析和洞察。 1. 數(shù)據(jù)提?。―ata Extraction) 選擇數(shù)據(jù)源 :確定你要分析
    的頭像 發(fā)表于 11-19 10:26 ?313次閱讀

    SQL錯誤代碼及解決方案

    SQL數(shù)據(jù)庫開發(fā)和管理中,常見的錯誤代碼及其解決方案可以歸納如下: 一、語法錯誤(Syntax Errors) 錯誤代碼 :無特定代碼,但通常會在錯誤消息中明確指出是語法錯誤。 原因 :SQL語句中
    的頭像 發(fā)表于 11-19 10:21 ?1993次閱讀

    常用SQL函數(shù)及其用法

    SQL 函數(shù)及其用法: 一、聚合函數(shù)(Aggregate Functions) 聚合函數(shù)對一組值執(zhí)行計算,并返回單個值。 COUNT() 用途 :返回匹配指定條件的行數(shù)。 示例 : SELECT
    的頭像 發(fā)表于 11-19 10:18 ?309次閱讀

    技術干貨驛站 ▏深入理解C語言:掌握C語言條件判斷,從if到switch的應用

    在編程中,條件判斷語句是控制程序流程的核心元素之一。它們使得程序能夠根據(jù)不同的輸入和狀態(tài),做出相應的決策。特別是在C語言中,條件判斷語句的使用極為廣泛,涵蓋了從簡單的if
    的頭像 發(fā)表于 11-09 01:10 ?370次閱讀
    技術干貨驛站 ▏深入理解C語言:掌握C語言<b class='flag-5'>條件</b>判斷,從if到switch的應用

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之流程控制

    1條件語句shell語句的流程控制與C語言不一樣,流程控制中不能為空。shell中if語法如下,其中confition表示條件判斷式,co
    發(fā)表于 09-05 09:06

    飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之流程控制

    1、條件語句 shell語句的流程控制與C語言不一樣,流程控制中不能為空。 shell中if語法如下,其中confition表示條件判斷式,
    發(fā)表于 09-04 10:12

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

    SQL 注入是通過將惡意的 SQL 代碼插入到輸入參數(shù)中,欺騙應用程序執(zhí)行這些惡意代碼,從而實現(xiàn)對數(shù)據(jù)庫的非法操作。例如,在一個登錄表單中,如果輸入的用戶名被直接拼接到 SQL 查詢語句中
    的頭像 發(fā)表于 08-05 17:36 ?327次閱讀

    如何限制IPD語句中的最大字節(jié)數(shù)?

    當數(shù)據(jù)可用時,我正在使用帶有 IP 和 PORT 的擴展 IPD 語句。 我的問題是,如何限制 IPD 語句中的最大字節(jié)數(shù)? 當我嘗試從服務器作為客戶端檢索數(shù)據(jù)時,響應包含大約 20k 的數(shù)據(jù),在
    發(fā)表于 07-17 06:06

    鴻蒙TypeScript入門學習第6天:【條件語句

    條件語句用于基于不同的條件來執(zhí)行不同的動作。 TypeScript 條件語句是通過一條或多條語句
    的頭像 發(fā)表于 04-01 13:51 ?769次閱讀
    鴻蒙TypeScript入門學習第6天:【<b class='flag-5'>條件</b><b class='flag-5'>語句</b>】

    SQL全外連接剖析

    SQL中的全外連接是什么? 在SQL中,F(xiàn)ULLOUTERJOIN組合左外連接和右外連接的結果,并返回連接子句兩側表中的所有(匹配或不匹配)行。接下面sojson給大家詳細講解。 ? 圖解:SQL
    的頭像 發(fā)表于 03-19 18:28 ?2252次閱讀
    <b class='flag-5'>SQL</b>全外連接剖析

    兩個控制器間SPI通信片選使能后為什么要過一段時間才收發(fā)數(shù)據(jù)?

    求助各位大佬,[抱拳]:兩個控制器間SPI通信片選使能后為什么要過一段時間才收發(fā)數(shù)據(jù)?收發(fā)完數(shù)據(jù)后為什么過一段時間才拉高片選?如附圖示時間段1和時間段2,片選控制設置的是軟件模式,手動使能矢能片選
    發(fā)表于 03-13 08:13

    assign語句和always語句的用法

    Assign語句和Always語句是在硬件描述語言(HDL)中常用的兩種語句,用于對數(shù)字電路建模和設計。Assign語句用于連續(xù)賦值,而Always
    的頭像 發(fā)表于 02-22 16:24 ?2636次閱讀

    查詢SQL在mysql內部是如何執(zhí)行?

    我們知道在mySQL客戶端,輸入一條查詢SQL,然后看到返回查詢的結果。這條查詢語句在 MySQL 內部到底是如何執(zhí)行的呢?本文跟大家探討一下哈,我們先來看下MySQL基本架構~
    的頭像 發(fā)表于 01-22 14:53 ?583次閱讀
    查詢<b class='flag-5'>SQL</b>在mysql內部是如何執(zhí)行?

    深入探討嵌入式C編程的goto語句

    什么是goto語句? goto 語句被稱為 C 語言中的跳轉語句。 用于無條件跳轉到其他標簽。它將控制權轉移到程序的其他部分。 goto
    發(fā)表于 01-21 10:41 ?617次閱讀
    深入探討嵌入式C編程的goto<b class='flag-5'>語句</b>