複製鏈接
請複製以下鏈接發送給好友

SQL LIKE

鎖定
LIKE 操作符用於在 WHERE 子句中搜索列中的指定模式。
中文名
鏈接
外文名
SQL LIKE
所屬領域
數據庫

SQL LIKE基本介紹

SQL LIKE 操作符語法
SELECT column_name(s)FROM table_name WHERE column_name LIKE pattern
佔位符
‘_':下劃線,表示1個任意字符;如 ... where name like '_am',表示僅第一位任意,並以'am'結尾,結果如"Tam","Mam","Pam"等。
'%’: 百分號,表示任意個任意字符;如 ... where name like ‘%am',表示前面可以有任意位,只要以'am'結尾,結果如"abcam",“bcdefgham","qwertyuiopam","am"等等。
SQL對like 操作中的特殊字符處理方法:
SQL Server查詢過程中,單引號 ' 是特殊字符,所以在查詢的時候要轉換成雙單引號 '' 。
在like操作還有以下特殊字符:下劃線_,百分號%,方括號[],尖號^。 其用途如下:
下劃線:用於代替一個任意字符(相當於正則表達式中的 ? ) 百分號:用於代替任意數目的任意字符(相當於正則表達式中的 * )
方括號:用於轉義(事實上只有左方括號用於轉義,右方括號使用最近優先原則匹配最近的左方括號)
尖號:用於排除一些字符進行匹配(這個與正則表達式中的一樣)
以下是一些匹配的舉例,需要説明的是,只有like操作才有這些特殊字符,=操作是沒有的。
a_b... a[_]b%
a%b... a[%]b%
a[b... a[[]b%
a]b... a]b%
a[]b... a[[]]b%
a[^]b... a[[]^]b%
a[^^]b... a[[]^^]b%
在實際進行處理的時候,對於=操作,我們一般只需要如此替換:
' -> ''
對於like操作,需要進行以下替換(注意順序也很重要)
[ -> [[] (這個必須是第一個替換的!!)
% -> [%] (這裏%是指希望匹配的字符本身包括的%而不是專門用於匹配的通配符)
_ -> [_]

SQL LIKE原始的表

Persons 表:
Id
LastName
FirstName
Address
City
1
Adams
John
Oxford Street
London
2
Bush
George
Fifth Avenue
New York
3
Carter
Thomas
Changan Street
Beijing

SQL LIKE實例

SQL LIKE例子 1

現在,我們希望從上面的 "Persons" 表中選取居住在以 "N" 開始的城市裏的人:
我們可以使用下面的 SELECT 語句:
SELECT * FROM PersonsWHERE City LIKE 'N%'提示:"%" 可用於定義通配符(模式中缺少的字母)。
結果集:
Id
LastName
FirstName
Address
City
2
Bush
George
Fifth Avenue
New York

SQL LIKE例子 2

接下來,我們希望從 "Persons" 表中選取居住在以 "g" 結尾的城市裏的人:
我們可以使用下面的 SELECT 語句:
SELECT * FROM PersonsWHERE City LIKE '%g'
結果集:
Id
LastName
FirstName
Address
City
3
Carter
Thomas
Changan Street
Beijing

SQL LIKE例子 3

接下來,我們希望從 "Persons" 表中選取居住在包含 "lon" 的城市裏的人:
我們可以使用下面的 SELECT 語句:
SELECT * FROM PersonsWHERE City LIKE '%lon%'結果集:
Id
LastName
FirstName
Address
City
1
Adams
John
Oxford Street
London

SQL LIKE例子 4

通過使用 NOT 關鍵字,我們可以從 "Persons" 表中選取居住在不包含 "lon" 的城市裏的人:
我們可以使用下面的 SELECT 語句:
SELECT * FROM PersonsWHERE City NOT LIKE '%lon%'結果集:
Id
LastName
FirstName
Address
City
2
Bush
George
Fifth Avenue
New York
3
Carter
Thomas
Changan Street
Beijing