SQL語句 SELECT LIKE用法(fǎ)詳解
在SQL結構化查詢語言中,LIKE語句有著至關重要(yào)的作用。
LIKE語句(jù)的語法格式是:select * from 表名(míng) where 字段(duàn)名 like 對(duì)應值(zhí)(子串),它(tā)主要是針對字符型字段的,它的作(zuò)用是在一個字符(fú)型(xíng)字(zì)段列(liè)中檢索包含對應子(zǐ)串的。
A:% 包含零(líng)個(gè)或多個字符的任意字符串(chuàn):
1、LIKE'Mc%' 將搜索以(yǐ)字母 Mc 開頭的(de)所有字符串(如 McBadden)。
2、LIKE'%inger' 將搜索以字母 inger 結尾的所有字符串(chuàn)(如 Ringer、Stringer)。
3、LIKE'%en%' 將搜索在任何位置(zhì)包含字(zì)母(mǔ) en 的所有字符串(如(rú) Bennet、Green、McBadden)。
B:_(下劃(huá)線) 任(rèn)何單(dān)個(gè)字符:
LIKE'_heryl' 將搜索(suǒ)以字母 heryl 結(jié)尾的(de)所有六個字母的名稱(如 Cheryl、Sheryl)。
C:[ ] 指定範圍 ([a-f]) 或集合(hé) ([abcdef]) 中的(de)任何單個字符(fú):
1,LIKE'[CK]ars[eo]n' 將搜索(suǒ)下列(liè)字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
2、LIKE'[M-Z]inger' 將搜(sōu)索(suǒ)以字符串(chuàn) inger 結尾、以從 M 到 Z 的任何單個字母開(kāi)頭的所有(yǒu)名稱(如 Ringer)。
D:[^] 不屬(shǔ)於指定範(fàn)圍 ([a-f]) 或集合 ([abcdef]) 的任何單個字符:
LIKE'M[^c]%' 將搜索(suǒ)以字母 M 開頭,並且第二個字母不是(shì) c 的所(suǒ)有名稱(如MacFeather)。
E:* 它同於DOS命令中的通配(pèi)符,代表多個字符:
c*c代(dài)表cc,cBc,cbc,cabdfec等多(duō)個(gè)字符(fú)。
F:?同於DOS命令中的?通配符,代表單個字(zì)符 :b?b代表brb,bFb等
G:# 大致(zhì)同上,不(bú)同的是代(dài)隻能代表單個數字。k#k代表(biǎo)k1k,k8k,k0k 。
F:[!] 排除(chú) 它隻代表單個字(zì)符
下麵我們來舉例說明一下:
例1,查詢name字段中包含有“明”字的。
select * from table1 where name like '%明%'
例2,查詢name字段中以“李(lǐ)”字(zì)開(kāi)頭。
select * from table1 where name like '李(lǐ)*'
例(lì)3,查詢(xún)name字段中含有(yǒu)數字的。
select * from table1 where name like '%[0-9]%'
例4,查詢name字段中含有小(xiǎo)寫字母(mǔ)的(de)。
select * from table1 where name like '%[a-z]%'
例5,查詢name字段中不含有數字的。
select * from table1 where name like '%[!0-9]%'
以上例子(zǐ)能列(liè)出什(shí)麽值(zhí)來顯而易見。但(dàn)在這(zhè)裏(lǐ),我們著重要說明的是通(tōng)配符“*”與“%”的區別。
很多朋友會問,為什麽我在以上(shàng)查詢時有個別的表示所(suǒ)有字符的時候用"%"而不用“*”?先(xiān)看看下麵(miàn)的例子能分別出現(xiàn)什麽結果:
select * from table1 where name like '*明*'
select * from table1 where name like '%明(míng)%'
大家會看到,前一條語句列出來的是所有的(de)記錄,而後一條(tiáo)記錄列出來的(de)是name字段中含有“明”的記錄,所以(yǐ)說,當我們(men)作字(zì)符(fú)型字段(duàn)包含一個子串(chuàn)的查(chá)詢時最好采(cǎi)用“%”而不用“*”,用(yòng)“*”的時候隻在開頭或者隻(zhī)在結尾時,而不能兩(liǎng)端全由“*”代替任意(yì)字符的情況下。
關(guān)鍵詞:SQL語句,SELECT,LIKE
閱讀本文後(hòu)您有什(shí)麽感想? 已有 人給出評價!
- 0
- 0
- 0
- 0
- 0
- 0