自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL中where 1=1語(yǔ)句的作用

數(shù)據(jù)庫(kù) SQL Server
where 1=1有什么用?在SQL語(yǔ)言中,寫(xiě)這么一句話(huà)就跟沒(méi)寫(xiě)一樣。但是這看似多余的一條語(yǔ)句,卻有其獨(dú)特的用處。

where 1=1有什么用?在SQL語(yǔ)言中,寫(xiě)這么一句話(huà)就跟沒(méi)寫(xiě)一樣。但是這看似多余的一條語(yǔ)句,卻有其獨(dú)特的用處。

select * from table1 where 1=1與select * from table1完全沒(méi)有區(qū)別,甚至還有其他許多寫(xiě)法,1<>2,'a'='a','a'<>'b',其目的就只有一個(gè),where的條件為永真,得到的結(jié)果就是未加約束條件的。

在SQL注入時(shí)會(huì)用到這個(gè),例如select * from table1 where name='lala'給強(qiáng)行加上select * from table1 where name='lala' or 1=1這就又變成了無(wú)約束的查詢(xún)了。

最近發(fā)現(xiàn)的妙用在于,在不定數(shù)量查詢(xún)條件情況下,1=1可以很方便的規(guī)范語(yǔ)句。例如一個(gè)查詢(xún)可能有name,age,height,weight約束,也可能沒(méi)有,那該如何處理呢?

String sql=select * from table1 where 1=1

為什么要寫(xiě)多余的1=1?馬上就知道了。

if(!name.equals("")){
sql=sql+"name='"+name+"'";
}
if(!age.equals("")){
sql=sql+"age'"+age+"'";
}
if(!height.equals("")){
sql=sql+"height='"+height+"'";
}
if(!weight.equals("")){
sql=sql+"weight='"+weight+"'";
}

如果不寫(xiě)1=1呢,那么在每一個(gè)不為空的查詢(xún)條件面前,都必須判斷有沒(méi)有where字句,否則要在第一個(gè)出現(xiàn)的地方加where

今天看到:"SELECT * FROM strName WHERE 1 = 0";
不理解為什么有1=0?

查詢(xún)得出答案:

該select語(yǔ)句主要用于讀取表的結(jié)構(gòu)而不考慮表中的數(shù)據(jù),這樣節(jié)省了內(nèi)存,因?yàn)榭梢圆挥帽4娼Y(jié)果集。

另外,這個(gè)用在什么地方呢?主要用于創(chuàng)建一個(gè)新表,而新表的結(jié)構(gòu)與查詢(xún)的表的結(jié)構(gòu)是一樣的。如下SQL語(yǔ)句:

create table newtable as select * from oldtable where 1=0;
 

 

【編輯推薦】
SQL中UNION指令的用法

遠(yuǎn)程連接sql server服務(wù)器的方法

SQL Server中不同用戶(hù)的權(quán)限

測(cè)試SQL語(yǔ)句執(zhí)行時(shí)間的方法

SQL Server中各類(lèi)型的鎖(LOCK)

 

責(zé)任編輯:段燃 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-03-10 13:18:54

SQLwhere

2020-11-05 09:33:37

SQL數(shù)據(jù)庫(kù)編程

2020-11-06 07:09:06

SQL注入編程

2021-09-16 06:44:07

數(shù)據(jù)庫(kù)SQL語(yǔ)句

2022-11-05 08:37:00

MySQL數(shù)據(jù)索引

2021-05-28 07:36:18

MySQLWhereHive

2021-11-15 06:56:45

MyBatis開(kāi)發(fā)項(xiàng)目

2024-05-31 13:04:09

2024-05-27 00:21:09

數(shù)據(jù)庫(kù)技巧SQL

2022-03-01 07:37:30

MySQL場(chǎng)景框架

2010-09-06 09:03:17

SQLselect語(yǔ)句

2024-02-20 22:13:49

SQL語(yǔ)句編程

2024-06-24 08:33:06

2023-03-29 09:22:03

SQLWhere語(yǔ)句

2024-08-05 01:23:41

SQL語(yǔ)句MySQL

2010-09-26 09:50:36

SQL Where子句

2010-11-12 13:08:36

動(dòng)態(tài)sql語(yǔ)句

2010-09-17 16:53:14

SQL中CREATE

2010-09-07 11:53:00

SQL語(yǔ)句

2010-09-17 09:35:51

SQL中if語(yǔ)句
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)