2012-04-23 72 views
0

什麼是否定MySQL查詢的最佳方式,也就是說,無論什麼條件下,強制它不返回任何記錄。否定MySQL查詢

我已經使用AND 1=0這似乎工作,但我很想知道是否有這樣的標準。

+3

有什麼意義? – vartec 2012-04-23 11:31:57

+1

你也可以不執行查詢? – Manuel 2012-04-23 11:32:29

+0

@vartec:該點可能是獲取表類型,即查詢的元數據,如「SELECT * FROM some_table LIMIT 0」 – 2012-04-23 11:37:39

回答

1

只需添加一個false條件

select * from your_table where false 
0

您還可以使用AND false。不知道這兩個選項之間是否有任何性能差異。

1

添加一個總是求值爲FALSE的內聯謂詞似乎是最適合我的方式。通過「內聯」,我的意思是你不使用綁定變量。另外,您也可以使用

LIMIT 0 

這具有更多的表現,但根據查詢優化器實現的優勢,它可能會比較慢(未經證實)

0

常量表達式「1 = 0」會評估爲「假」,這僅僅是「0」,在執行之前的別名,所以從提供的最終結果將是更快,更易於閱讀計算表達式節能的MySQL:

AND FALSE