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;

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

    關注

    1

    文章

    753

    瀏覽量

    44032
  • 代碼
    +關注

    關注

    30

    文章

    4722

    瀏覽量

    68231
收藏 人收藏

    評論

    相關推薦

    SQL改寫消除相關子查詢實踐

    GaussDB (DWS) 根據(jù)子查詢在 SQL 語句中的位置把子查詢分成了子查詢、子鏈接兩種形式。
    的頭像 發(fā)表于 12-27 09:51 ?452次閱讀

    oracle執(zhí)行sql查詢語句的步驟是什么

    Oracle數(shù)據(jù)庫是一種常用的關系型數(shù)據(jù)庫管理系統(tǒng),具有強大的SQL查詢功能。Oracle執(zhí)行SQL查詢語句的步驟包括編寫SQL語句、解析
    的頭像 發(fā)表于 12-06 10:49 ?876次閱讀

    oracle sql 定義變量并賦值

    在Oracle SQL中,變量是用來存儲數(shù)據(jù)值的標識符。通過定義和使用變量,我們可以在SQL語句中使用它們來存儲和處理數(shù)據(jù),從而實現(xiàn)更靈活和動態(tài)的查詢和操作。 在Oracle SQL
    的頭像 發(fā)表于 12-06 10:46 ?2565次閱讀

    java中的switch語句 case的取值

    Java中的switch語句是一種用于多重條件判斷的語句,用于根據(jù)不同的條件執(zhí)行不同的代碼塊。在switch語句中,case關鍵字用來指定不
    的頭像 發(fā)表于 11-30 16:05 ?1028次閱讀

    sql語句多個條件怎么連接

    SQL語句中使用了兩個條件,age >= 25表示年齡大于等于25,age OR運算符用于滿足多個條件中的至少一個條件的情況。例如,
    的頭像 發(fā)表于 11-23 11:34 ?2258次閱讀

    sqlwhere條件多個and順序

    SQL中,WHERE子句用于過濾查詢結果以提供符合特定條件的記錄。當有多個AND操作符時,WHERE子句的順序并不會影響查詢結果,但是正確的AND操作符順序可以提高查詢的可讀性和性能
    的頭像 發(fā)表于 11-23 11:33 ?3716次閱讀

    sql where條件的執(zhí)行順序

    SQL語句中WHERE條件是用來篩選數(shù)據(jù)的,它決定了哪些數(shù)據(jù)會被返回給用戶。WHERE條件的執(zhí)
    的頭像 發(fā)表于 11-23 11:31 ?2110次閱讀

    sql怎么在where條件判斷

    SQL中,WHERE條件用于篩選符合特定條件的記錄。它提供了一種在查詢中過濾數(shù)據(jù)的方法,使您能夠根據(jù)所需的特定條件對查詢結果進行更精確的控
    的頭像 發(fā)表于 11-23 11:30 ?1818次閱讀

    sql語句where條件查詢

    的細節(jié),包括使用的操作符、條件的組合、多張表的查詢、條件的性能優(yōu)化等方面。 首先,讓我們了解一下WHERE句中常用的操作符。在SQL中,常
    的頭像 發(fā)表于 11-23 11:28 ?1101次閱讀

    sql語句中having的用法

    SQL語句中,HAVING是一個用于對GROUP BY子句的結果進行過濾和限制的子句。它類似于WHERE子句,但作用于聚合函數(shù)的結果而不是單獨的行。HAVING子句通常用于對聚合函數(shù)的結果進行
    的頭像 發(fā)表于 11-23 11:23 ?2201次閱讀

    python if語句多個條件怎么用

    在Python中,可以使用多個條件來編寫if語句。這些條件可以使用邏輯運算符進行組合,包括and、or和not。 當if語句中有多個條件時,
    的頭像 發(fā)表于 11-21 16:45 ?2836次閱讀

    insert后面可以跟where

    (列1, 列2, 列3) VALUES (值1, 值2, 值3) WHERE 條件; 在上面的示例中,"INSERT"語句將插入一行數(shù)據(jù)到
    的頭像 發(fā)表于 11-21 14:20 ?6433次閱讀

    oracle更新clob字段sql語句

    名 SET CLOB字段 = '新的文本' WHERE 條件; 其中,"表名"是要更新的表的名稱,"CLOB字段"是要更新的CLOB字段的名稱,"新的文本"是要更新的新文本內容,"條件"是用于指定
    的頭像 發(fā)表于 11-21 11:29 ?3921次閱讀

    select語句的基本語法

    、詳實、細致地解釋SELECT語句的基本語法以及關鍵部分。 SELECT語句的基本語法如下: SELECT 列名 1 , 列名 2 , ... FROM 表名 WHERE
    的頭像 發(fā)表于 11-17 16:23 ?1821次閱讀

    sql查詢語句大全及實例

    的不同類型及其實例。 SELECT語句 SELECT語句SQL中最常用的查詢語句。它用于從表中選擇數(shù)據(jù),并可以使用不同的條件進行篩選。下面
    的頭像 發(fā)表于 11-17 15:06 ?1382次閱讀