我們知道在使用
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,此事計畫好久,總算是落下眉目了 晚上開始裝...