2013-03-05 578 views
2

我有以下查詢(反斜槓)在SQL查詢中意味着什麼?

SELECT txt1 FROM T1 WHERE txt1 LIKE '_a\%' 

將那結果有任何字符答案+ A + \ +什麼?

有點像Pa \ pe作爲結果嗎?

是Ca%或_a%有效答案也許?

如何在SQL查詢中正常運行?

+1

大多數情況下,這是一種逃避字符,說解釋下一個字符爲文字,而不是通配符字符... – Sparky 2013-03-05 01:58:32

+0

所以它應該產生像Ca%或_a%這樣的結果? – Polux 2013-03-05 02:16:36

回答

2

%是一個匹配LIKE子句中的零個或多個字符的通配符。 _是在LIKE子句中精確匹配一個字符的通配符。

\是一個特殊字符,被稱爲轉義字符,表示直接跟在它後面的字符應該逐字解釋(對單引號,通配符等有用)。

例如:

SELECT txt1 FROM T1 WHERE txt1 LIKE '_a%' 

將選擇「XA1」的txt1中值的記錄,「XA塔科」,「雅什麼真正的」等

現在讓我們假設你想實際搜索爲百分號。爲了做到這一點,你需要一個特殊的字符,表示%而不是被視爲通配符。例如:

SELECT txt1 FROM T1 WHERE txt1 LIKE '_a\%' 

將選擇txt1值爲'ba%'(但沒有別的)的記錄。

最後,一個LIKE子句通常會包含一個通配符(否則您可以只使用=而不是LIKE)。所以你可能會看到一個包含\ %%的查詢。這裏,第一個百分號將被視爲字面百分號,但第二個符號將被解釋爲通配符。例如:

SELECT txt1 FROM T1 WHERE txt1 LIKE '_a\%%' 

將選擇「DA%別的東西」,「FA%塔科」,「質量%一堆玉米餅」等txt1中值的記錄

+0

好的,但_仍然會選擇任何字符右鍵?那麼LIKE'_a \%'實際上導致像'Xa \%'這樣的東西是X任何字符(實際上是什麼)? – Polux 2013-03-05 03:38:06

+0

是的。 _是與任何單個字符匹配的通配符。 %將匹配多個字符。 – chrislopresto 2013-03-05 03:58:51

+0

對於SELECT txt1 FROM T1 WHERE txt1 LIKE'_a \%'是'Ca%'和'_a%'的有效查詢結果呢? – Polux 2013-03-05 04:20:36

4

LIKE子句可以讓你找到的文本,當你不知道確切值,如姓名與JO開始將

LIKE 'JO%' 

但是,如果你正在尋找與a%結束的東西,那麼你需要告訴SQL將%作爲你正在搜索的一部分。在你的例子中,你正在尋找一個3個字符的字符串,你不關心第一個字母是什麼,但必須以a%結束。

+0

like'JO%'會找到以JO開頭的單詞,我的疑問不是關於使用%,而是使用反斜槓 – Polux 2013-03-05 02:10:42

+0

對不起,錯字,謝謝 – Sparky 2013-03-05 02:11:11

+0

你知道關於\ ??的任何內容嗎? – Polux 2013-03-05 02:13:16