以前編寫LIKE謂詞被忽略的使用方法

2021-09-05 14:34:50 字數 1378 閱讀 8481

我們知道在使用

sql語句編寫查詢時會用到

select

語句。它的基本結構如下:

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

select ... ... from ... ... where ... ... order by ... ...

在使用where

條件子句時我們知道可以通過

like

關鍵字進行模糊查詢,而且我們也知道可以使用萬用字元實現這個。我們通常知道的萬用字元有下劃線

_和百分號

%。其實我們還有其它的查詢匹配可用,只是我們不經常使用而忽略了它們。被我們忽略的就是匹配特定範圍

和匹配特定範圍之外的

[^]兩個。

下面大家先看看在

microsoft sql server

中定義的萬用字元:

萬用字元

說明

_(下劃線)

與任意單字元匹配

%與包含乙個或多個字元的字串匹配

[ ]與特定範圍(例如,

[a-f]

)或特定集(例如,

[abcdef]

)中的任意單字元匹配。

[^]與特定範圍(例如,

[^a-f]

)或特定集(例如,

[^abcdef]

)之外的任意單字元匹配。

下面我們列出一些事例去說明這些萬用字元的使用。 •

wherefirstnamelike'_im'

可以找到所有三個字母的、以

im 結尾的名字(例如,

jim、

tim)。

wherelastnamelike'%stein'

可以找到姓以

stein

結尾的所有員工。

wherelastnamelike'%stein%'

可以找到姓中任意位置包括

stein

的所有員工。

wherefirstnamelike'[jt]im'

可以找到三個字母的、以

im 結尾並以j 或

t 開始的名字(即僅有

jim

和tim)•

wherelastnamelike'm[^c]%'

可以找到以

m 開始的、後面的(第二個)字母不為

c 的所有姓。

MySQL利用CONCAT函式實現LIKE方法

concat str1,str2,返回結果為連線引數產生的字串。如有任何乙個引數為null 則返回值為 null。或許有乙個或多個引數。如果所有引數均為非二進位制字串,則結果為非二進位制字串。如果自變數中含有任一二進位制字串,則結果為乙個二進位制字串。乙個數字引數被轉化為與之相等的二進位制字串格式 ...

使用INSTR替換mysql裡面的like

mysql裡面的like如果是左右模糊不可以使用索引導致查詢效率極低,這時候我們就可以使用orcal裡面的instr來處理使效率提高 這段sql是乙個左右模糊查詢 select from t case where name like concat 測試 使用instr來替代 select from ...

以前的日誌

今天申請了這個部落格,正好剛和乙個討論建立個工作室,真是好事成雙,心情不錯呀!拉了幾個人,目前共五人,都是網上認識的朋友,希望我們這個工作室能夠籌建成功,也希望我們可以從中學到更多知識 將來掌握在自己手中,將來一片光明 10 13日下午終於買來紅帽子9.2,此事計畫好久,總算是落下眉目了 晚上開始裝...