1. 程式人生 > >SQL中萬用字元用法

SQL中萬用字元用法

%:匹配零個及多個任意字元; _:與任意單字元匹配; []:匹配一個範圍; [^]:排除一個範圍

SymbolMeaning
like '5[%]' 5%
like '[_]n' _n
like '[a-cdf]' a, b, c, d, or f
like '[-acdf]' -, a, c, d, or f
like '[[]' [
like ']' ]
like 'abc[_]d%' abc_d and abc_de
like 'abc[def]' abcd, abce, and abcf
like '[^1-9]' 0
like '[^1-9b-z]' 0, a

對於字串中出現的特殊字元:'%','[','[]', '_' 可以使用 '[]' 把它們包含起來, 這樣在匹配模式(pattern)中,它們就被當作普通字元對待了。

1. 用 like '[[]' 匹配特殊字元 '['

select 1 where '[ABCDE' like '[[]%'

2. 用 like ']' 匹配特殊字元 ']'

select 1 where ']ABCDE' like ']%'

3. 用 like '[[]]' 匹配特殊字元 '[]'

select 1 where '[]ABCDE' like '[[]]%%'

4. 用 like '[_]' 匹配特殊字元 '_'

select 1 where '_ABCDE' like '[_]%'

5. 用 like '[%]' 匹配特殊字元 '%'

SQL SERVER:select 1 where 'ABC%DE' like 'ABC[%]DE'
ORACLE:select 1 from dual where 'ABC%DE' like 'ABC[%]DE'

對於其他的特殊字元:'^', '-', ']' 因為它們本身在包含在 '[]' 中使用,所以需要用另外的方式來轉義,於是就引入了 like 中的 escape 子句,另外值得注意的是:escape 可以轉義所有的特殊字元。

SQL SERVER:
select 1 where '%ABCDE' like '/%ABCDE' escape '/' select 1 where '%ABCDE' like '!%ABCDE' escape '!' select 1 where '%ABCDE' like '#%ABCDE' escape '#' select 1 where '%ABCDE' like '@%ABCDE' escape '@'
ORACLE:
select 1 from dual where '%ABCDE' like '/%ABCDE' escape '/'
select 1 from dual where '%ABCDE' like '!%ABCDE' escape '!'
select 1 from dual where '%ABCDE' like '#%ABCDE' escape '#'
select 1 from dual where '%ABCDE' like '@%ABCDE' escape '@'

看出規律了吧,就是用 escape 後面緊跟著的字元來做轉義字元。 escape 後面的字元相當於 C 語言字串中的轉義字元 '/'。

最後,看一個更加複雜的匹配

select 1 where '[^A-Z]ABCDE' like '/[/^A/-Z/]%' escape '/'

相關推薦

SQL字元用法

%:匹配零個及多個任意字元; _:與任意單字元匹配; []:匹配一個範圍; [^]:排除一個範圍 SymbolMeaning like '5[%]' 5% like '[_]n' _n like '[a-cdf]' a, b, c, d, or f like '[-acdf

java使用Access資料庫字元的一些坑

java使用Access資料庫中萬用字元的一些坑 在使用access資料庫寫一個條件為like的語句: select mess_id ,mess_name,mess_note,mess_txt from messtable where 1=1 and mess_name like ‘*

SQL字元

 SQL的寫作技巧對系統的效能很重要。今天把SQL的一些萬用字元紀錄下來。方便查閱。 % 包含零個或更多字元的任意字串。 eg: WHERE title LIKE '%computer%' 將查詢包含單詞 computer 的所有標題。 _下劃線) 任何單個字元。 eg: W

Linux字元和正則表示式的區別

在看鳥哥的Linux私房菜的時候看到十二章一直強調萬用字元和正則表示式的區別,在我的理解中,兩者貌似是一樣的都是用來匹配的。Google之網上給出的答案是: 在文字過濾工具裡,都是用正則表示式,比如像awk,sed,等,是針對檔案的內容的 而萬用字元多用在檔名上,比如查詢

Struts2學習筆記(五):struts2字元用法示例

本文主要介紹struts2配置檔案中萬用字元的用法。 先來看一個簡單的需求,index.jsp中有四個連結。 <a href="Action1_add">add1</a> <br/><br/> <a href="Acti

模糊查詢支援引數有*和?這樣的sql字元

if(val.getPlateNo()!=null && !"".equals(val.getPlateNo())) {             String plateNo = val.getPlateNo();             if(plateNo

在mySQlSQL語言允許使用字元進行字串匹配的操作,其中“%”不能表示()。A.0個字元B.一個字元C.多個字元D.搜尋關鍵字包含字元“%”

加粗樣式@TOC 歡迎使用Markdown編輯器 你好! 這是你第一次使用 Markdown編輯器 所展示的歡迎頁。如果你想學習如何使用Markdown編輯器, 可以仔細閱讀這篇文章,瞭解一下Markdown的基本語法知識。 新的改變 我們對Markdown編輯

sql搜尋like字元用法詳解

有很多朋友寫了幾年的like搜尋,可能對like後面萬用字元的用法都不瞭解,甚至於%的作用是什麼都不清楚。在這篇文章中,我們就一起來學習一下like查詢中萬用字元的用法吧。我們寫的最多的查詢語句可能是這樣的 select * from computes where 欄位 n

SQLlike語句字元、轉義符與括號的使用

https://blog.csdn.net/kpchen_0508/article/details/45167481 可以搜尋萬用字元字元。有兩種方法可指定平常用作萬用字元的字元: 使用 ESCAPE 關鍵字定義轉義符。在模式中,當轉義符置於萬用字元之前時,該萬用字

SQLCONCAT連線字元的問題

由於開發需要進行模糊查詢,在程式中報了一條sql語句的錯,後在mysql中進行測試, 而後糾結許久,還以為concat不能連線萬用字元··· 在網上查詢了concat()的使用方法 mysql CONCAT(str1,str2,…)                    

sql like語句字元:百分號、下劃線和escape

# %代表任意多個字元    select * fromuserwhere username like'%huxiao';  select * fromuserwhere username like'huxiao%';  select * fromuserwhere

java泛型字元?問題

本文是經過網上查詢的資料整合而來,給自己做個筆記,也分享給大家!需要你對泛型有一定的基礎瞭解。 package Test8_8; import java.util.ArrayList; import java.util.List; class Animal { privat

SQL 字元

萬用字元 描述 % 替代一個或多個字元 _ 僅替代一個字元 [charlist] 字元列中的任何單一字元

Elasticsearch字元及正則表示式查詢

想要在ES中使用*或者?作為萬用字元進行模糊匹配? 看這篇就對了~ 本文為轉發!!! 轉自:https://blog.csdn.net/dm_vincent/article/details/42024799 wildcard查詢和prefix查詢類似,也是一個基於詞

SQL必知必會】筆記 SQL字元

萬用字元: WHERE子句中用於篩選 用來匹配值的一部分的特殊字元 萬用字元只能用於文字欄位(字串),不能用於非文字資料型別的資料 使用萬用字元時,必須使用LIKE操作符 1. 百分號(%)萬用字元 %表示任何字元出現任意次數 比方說,

關於component-scanbase-package包含字元的問題探究

http://blog.csdn.net/u012325167/article/details/75388990 今天在配置Spring的component-scan時,發現了一個有趣的問題。就是在指定base-package時,如果使用了星號萬用字元*,有時會出現類掃描不

shell字元&&正則表示式

萬用字元與正則表示式式的區別: 萬用字元:shell命令列或者shell指令碼中,在shell命令中匹配檔名 正則表示式:在檔案中匹配字串  ls find cp 不支援 正則表示式(和檔名相關);grep awk sed支援正則表示式(和文字中的字串相關) ----

MySQL字元

MySQL中的常用統配符有三個:        %:用來表示任意多個字元,包含0個字元        _  : 用來表示任意單個字元       escape:用來轉義特定字元 在MySQL中統配符一般和模糊查詢 like 關鍵字結合使用 1.%的使用方式及

jQuery選擇器字元[id*='id']及jquery選擇器總結

1.選擇器 (1)萬用字元: $("input[id^='code']");//id屬性以code開始的所有input標籤 $("input[id$='code']");//id屬性以code結束的所有input標籤 $("input[id

Linux字元和正則表示式

在linux中,有萬用字元和正則表示式,這是兩個不同的概念 萬用字元:它是由shell解析,並且一般用於匹配檔名。如:ls 正則表示式:是一個字元匹配標準,可以匹配文字中的內容 一些命令工具按此標準實現字元匹配,常用於支援正則表示式的工具,如grep,sed等。一般用於匹配檔案中的內