文章編號:10430時間:2024-09-28人氣:
在sql結構化查詢語言中,like語句有著至關重要的作用。
like語句的語法格式是:select * from 表名 where 字段名 like 對應值(子串),它主要是針對字符型字段的,它的作用是在一個字符型字段列中檢索包含對應子串的。
A:% 包含零個或多個字符的任意字符串:
1、likeMc% 將搜索以字母 Mc 開頭的所有字符串(如 McBadden)。
2、like%inger 將搜索以字母 inger 結尾的所有字符串(如 Ringer、Stringer)。
3、like%en% 將搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
B:_(下劃線) 任何單個字符:
like_heryl 將搜索以字母 heryl 結尾的所有六個字母的名稱(如 Cheryl、Sheryl)。
C:[ ] 指定范圍 ([a-f]) 或集合 ([abcdef]) 中的任何單個字符:
1,like[CK]ars[eo]n 將搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
2、like[M-Z]inger 將搜索以字符串 inger 結尾、以從 M 到 Z 的任何單個字母開頭的所有名稱(如 Ringer)。
D:[^] 不屬于指定范圍 ([a-f]) 或集合 ([abcdef]) 的任何單個字符:
likeM[^c]% 將搜索以字母 M 開頭,并且第二個字母不是 c 的所有名稱(如MacFeaTher)。
E:* 它同于DOS命令中的通配符,代表多個字符:
c*c代表cc,cBc,cbc,cabdfec等多個字符。
F:?同于DOS命令中的?通配符,代表單個字符 :
b?b代表brb,bFb等
G:# 大致同上,不同的是代只能代表單個數字。 k#k代表k1k,k8k,k0k 。
下面我們來舉例說明一下:
例1,查詢name字段中包含有“明”字的。
select * from table1 where name like %明%
例2,查詢name字段中以“李”字開頭。
select * from table1 where name like 李*
例3,查詢name字段中含有數字的。
select * from table1 where name like %[0-9]%
例4,查詢name字段中含有小寫字母的。
select * from table1 where name like %[a-z]%
例5,查詢name字段中不含有數字的。
select * from table1 where name like %[!0-9]%
以上例子能列出什么值來顯而易見。 但在這里,我們著重要說明的是通配符“*”與“%”的區別。
很多朋友會問,為什么我在以上查詢時有個別的表示所有字符的時候用%而不用“*”?先看看下面的例子能分別出現什么結果:
select * from table1 where name like *明*
select * from table1 where name like %明%
大家會看到,前一條語句列出來的是所有的記錄,而后一條記錄列出來的是name字段中含有“明”的記錄,所以說,當我們作字符型字段包含一個子串的查詢時最好采用“%”而不用“*”,用“*”的時候只在開頭或者只在結尾時,而不能兩端全由“*”代替任意字符的情況下。
SQL模糊查詢,使用like比較關鍵字,加上SQL里的通配符,請參考以下: 1、LIKEMc% 將搜索以字母 Mc 開頭的所有字符串(如 McBadden)。 2、LIKE%inger 將搜索以字母 inger 結尾的所有字符串(如 Ringer、Stringer)。 3、LIKE%en% 將搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。 4、LIKE_heryl 將搜索以字母 heryl 結尾的所有六個字母的名稱(如 Cheryl、Sheryl)。 5、LIKE[CK]ars[eo]n 將搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。 6、LIKE[M-Z]inger 將搜索以字符串 inger 結尾、以從 M 到 Z 的任何單個字母開頭的所有名稱(如 Ringer)。 7、LIKEM[^c]% 將搜索以字母 M 開頭,并且第二個字母不是 c 的所有名稱(如MacFeather)。 ------------------------------------------------- 下 面這句查詢字符串是我以前寫的,根據變量 zipcode_key 在郵政編碼表 zipcode 中查詢對應的數據,這句是判斷變量 zipcode_key 為非數字時的查詢語句,用 % 來匹配任意長度的字符串,從表中地址、市、省三列中查詢包含關鍵字的所有數據項,并按省、市、地址排序。 這個例子比較簡單,只要你理解了方法就可以寫出更 復雜的查詢語句。 sql = select * from zipcode where (address like% & zipcode_key & %) or (city like% & zipcode_key & %) or (province like% & zipcode_key & %) order by province,city,address存儲過程中使用模糊查詢的例子:SELECT * FROM Questions where QTitle like % [ + @KeyWord + ] % and IsFinish = @IsFinsih語句中成對的方括號 是書寫格式的關鍵。
like一般包含有通配符,%代表0個或多個字符,_代表一個字符,即like是模糊查詢,=是精確匹配,比如 姓名 like 張%是查詢姓張的人,姓名=張三,是查找名字是張三的人
1、多字段like模糊查詢優化: 最常見的寫法: wherea like %xx% or b like %xx% or c like %xx%; 這種寫法查詢效率低,經過調查,下面的方法可以替代,并且效率高: 2、如果like的關鍵字相同: where instr(nvl(a, )||nvl(b,)||nvl(c,), xx) > 0 把要模糊查詢的字段先拼接起來,拼接時需要把null轉成‘’,否則只要有一個字段值是空,整個拼接的字符串都成空了, 然后用instr 函數去過濾; 3、如果like的關鍵字不同: where instr(a, xx) > 0orinstr(b, yy) > 0or instr(c, zz) > 0 經過測試,這兩種方法都比like效率要高;
通配符是進行模糊查詢時用到的,比如有個字段是字符串,你想找abc開頭的字符串,因為abc開頭的字符串有很多很多,可能會有abc、abcd、abcdd。 。 。 。 。 。 。 ,也就是說abc后面可能會有0個字符(abc),也可能有多個字符(abcd、abcdd。 。 。 。 ),你得寫xxxx like abc% ,再打個比方,你查找全部姓王的同事,你可以寫 xxxx like 王%,姓王的可能是2個字,也可能是3個字查一個單詞第四個字母是a的應該這樣表達:xxxx like ____a%如果不用通配符,like相當于=like是用來按照你要求查找字符串地明白了嗎?
內容聲明:
1、本站收錄的內容來源于大數據收集,版權歸原網站所有!
2、本站收錄的內容若侵害到您的利益,請聯系我們進行刪除處理!
3、本站不接受違法信息,如您發現違法內容,請聯系我們進行舉報處理!
4、本文地址:http://m.sycxjdsbhs.com/article/813fcf0f2a419eea8a45.html,復制請保留版權鏈接!
XSLT,可擴展樣式表語言轉換,是一種強大的工具,可用于將XML文檔轉換為其他格式,例如HTML、文本或其他XML,掌握XSLT的基礎知識對于處理XML至關重要,這將極大提升您的XML處理能力,XML的基礎知識在深入探討XSLT之前,讓我們先了解XML的基礎知識,XML,可擴展標記語言,是一種可用于表示數據的標記語言,它使用標簽來定義...。
本站公告 2024-09-26 22:44:37
前言在SQLServer中,RAISERROR語句是一個強大的工具,可用于向應用程序或用戶發送自定義錯誤消息,它允許您指定錯誤號碼、嚴重性級別和自定義消息文本,借助此功能,您可以提供更具信息性和有用的錯誤消息,從而改善用戶體驗並簡化故障排除過程,RAISERROR語法RAISERROR語句的基本語法如下,RAISERROR,messa...。
互聯網資訊 2024-09-25 11:54:11
簡介數據庫事務是數據庫管理系統中的一組相關操作,這些操作作為一個整體執行,要么全部成功,要么全部失敗,事務通常用于確保數據的一致性和完整性,在MySQL中,使用BEGINTRANSACTION命令開始事務,使用COMMIT提交事務,使用ROLLBACK回滾事務,BeginTransaction的好處使用BEGINTRANSACTION...。
本站公告 2024-09-23 06:59:30
在JavaScript中,split,方法是一種強大的工具,可用于將字符串拆分為一個數組,它允許你根據指定的模式或分隔符將字符串分解為更小的片段,本文將深入探討split,方法,包括它的語法、參數、返回值和使用示例,以幫助你充分利用它,語法split,方法的語法如下,string.split,[separator[,limit]...。
最新資訊 2024-09-14 22:15:31
概述wxPython是一個強大的GUI,圖形用戶界面,庫,它允許開發人員使用Python編程語言為不同的平臺創建跨平臺應用程序,包括桌面、移動和Web,本文將重點介紹wxPython在跨平臺開發中的優勢,以及如何在桌面、移動和Web平臺上構建應用程序,桌面開發對于桌面開發,wxPython提供了一個廣泛的控件和布局選項,使開發人員能夠...。
本站公告 2024-09-14 20:31:26
序在`web.xml`文件中設置Jersey應用程序,```xmlJerseyServletorg.glassfish.jersey.servlet.ServletContainerjersey.config.server.provider.packagescom.example.restapi1```測試API啟動Web應用程序并使...。
最新資訊 2024-09-14 12:45:32
變量或JavaScript,您可以輕松自定義滾動條顏色以匹配您的網站設計,通過發揮創造力,您可以使用多種方式讓您的滾動條脫穎而出,并為您的用戶提供更好的體驗,我們希望本指南對您有所幫助!如果您有任何其他問題,請隨時在評論中詢問,...。
技術教程 2024-09-14 10:35:30
的單元格求和=SUMIF,A1,A10,>,0,AVERAGEIF對滿足指定條件的單元格求平均值=AVERAGEIF,A1,A10,>,0,COUNTIF統計滿足指定條件的單元格個數=COUNTIF,A1,A10,>,0,MAXIFS對滿足指定條件的單元格求最大值=MAXIFS,A1,A10,B1,B10,>,0,查找...。
技術教程 2024-09-13 14:03:33
應用很有用,優化函數信號發生器性能的最佳實踐了解應用的具體要求,選擇性能符合要求的信號發生器,正確配置信號發生器的設置,定期校準信號發生器,使用高質量的連接器和電纜,探索高級功能,以擴展信號生成器的功能,結論通過應用這些秘訣和技巧,可以顯著優化函數信號發生器的性能,這將確保設備產生準確且可靠的信號,從而提高電子測試和測量應用的質量和效...。
互聯網資訊 2024-09-13 13:51:09
C語言是一種廣泛使用且功能強大的編程語言,在操作系統、嵌入式系統、游戲開發等領域有著廣泛的應用,如果您想學習C語言,北京是一個理想的城市,這里匯集了眾多優秀的C語言培訓機構,尋找適合您的培訓機構在選擇培訓機構時,請考慮以下因素,口碑和評價,查看機構的在線評價和口碑,了解其他學生的學習體驗,課程內容,確保課程內容涵蓋您需要的基礎和高級C...。
技術教程 2024-09-11 23:19:33
簡介ASP,ActiveServerPages,是一種Microsoft技術,可用于創建動態Web應用程序,本指南將帶您逐步了解ASP編程的基礎知識,即使您沒有編程經驗,也可以上手,安裝和設置安裝IIS在您的計算機上安裝IIS,Internet信息服務,以運行ASP網站,訪問Microsoft網站下載并安裝最新版本的IIS,創建虛擬目...。
技術教程 2024-09-09 18:14:37
異常處理在什么時候進行異常處理是在程序運行時遇到錯誤或異常情況時進行的,這些情況通常是由代碼中不可預見的事件或條件引起的,例如,訪問不存在的內存地址除以零文件打開失敗函數調用返回錯誤當發生異常時,程序會跳出正常的執行流程,并執行異常處理代碼,異常處理代碼可以嘗試處理該異常,例如通過恢復操作或提供錯誤信息,或者它可以將異常傳遞給調用者,...。
互聯網資訊 2024-09-07 05:21:42