我正在讀一本關於SQL的書。這個查詢是什麼意思?
在那本書中,我看到了下面奇怪查詢:
SELECT * into mycustomer from customer WHERE 1=2
在此查詢,什麼是 「其中1 = 2」?
我正在讀一本關於SQL的書。這個查詢是什麼意思?
在那本書中,我看到了下面奇怪查詢:
SELECT * into mycustomer from customer WHERE 1=2
在此查詢,什麼是 「其中1 = 2」?
1=2
將永遠是false
。
這是一種指定總是計算爲false
的WHERE
子句的方法。
類似的事情是WHERE 1=1
其總是評估爲true
。
+1用於添加「類似的東西」1 = 1。 – 2010-03-18 06:55:59
WHERE 1=2
是不可能的,這樣的條件永遠是假的。這是一個錯字嗎?也許它是清除一個變量的負載?由於SELECT INTO將所有列放入@COLUMNNAME變量
它不過就像在你的情況下,SQL injecttion它總是假的,如果1 = 1比它的真實和將返回我用傳統的ASP時,所有的客戶數據
回到過去,我用「WHERE 1 = 2」結構來檢索表的列定義而不是其內容。現在有更好的方法通過使用對象關係映射框架來檢索列定義。
我的猜測是,你正在閱讀的書有點過時,或者這個查詢的上下文是錯位的。
正如大家在下面所說的那樣,條件總是錯誤的。我已經看到了與動態SQL一起使用的技術,作爲獲取查詢中列的描述符的一種方式 - 但是您不會有INTO子句。 – 2010-03-18 06:47:02
Jonathan:INTO子句用於通過查詢'customer'來創建一個新表mycustomer。在這種情況下,不會返回任何行,因此將創建一個空表。這是一個複製表結構的習慣用法。 – Gabe 2010-03-18 06:58:48