這篇文章主要介紹了MySQL中模糊查詢語(yǔ)法怎么寫(xiě),具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)建站長(zhǎng)期為超過(guò)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為阿克陶企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站,阿克陶網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
MySQL LIKE模糊查詢
我們知道在 MySQL 中使用 SQL SELECT 命令來(lái)讀取數(shù)據(jù), 同時(shí)我們可以在 SELECT 語(yǔ)句中使用 WHERE 子句來(lái)獲取指定的記錄。
WHERE 子句中可以使用等號(hào) = 來(lái)設(shè)定獲取數(shù)據(jù)的條件,如 "runoob_author = 'RUNOOB.COM'"。
但是有時(shí)候我們需要獲取 runoob_author 字段含有 "COM" 字符的所有記錄,這時(shí)我們就需要在 WHERE 子句中使用 SQL LIKE 子句。
SQL LIKE 子句中使用百分號(hào) %字符來(lái)表示任意字符,類似于UNIX或正則表達(dá)式中的星號(hào) *。
如果沒(méi)有使用百分號(hào) %, LIKE 子句與等號(hào) = 的效果是一樣的。
語(yǔ)法
以下是 SQL SELECT 語(yǔ)句使用 LIKE 子句從數(shù)據(jù)表中讀取數(shù)據(jù)的通用語(yǔ)法:
SELECT field1, field2,...fieldN FROM table_name WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
你可以在 WHERE 子句中指定任何條件。
你可以在 WHERE 子句中使用LIKE子句。
你可以使用LIKE子句代替等號(hào) =。
LIKE 通常與 % 一同使用,類似于一個(gè)元字符的搜索。
你可以使用 AND 或者 OR 指定一個(gè)或多個(gè)條件。
你可以在 DELETE 或 UPDATE 命令中使用 WHERE...LIKE 子句來(lái)指定條件。
mysql中模糊查詢的四種用法:
一.%:表示任意0個(gè)或多個(gè)字符。可匹配任意類型和長(zhǎng)度的字符,有些情況下若是中文,請(qǐng)使用兩個(gè)百 分號(hào)(%%)表示。
*注:like '%龍%':查詢出所有含有“龍”的記錄
1. 所查詢字段 + like '%龍%'
eg:select * from user where realname like '%龍%'
把含有“龍”字的 realname 字段搜索出來(lái)
2. 所查詢字段 + like '%龍%' and 所查詢字段 + like '%文%'
eg: select * from user where realname like '%龍%' and realname like '%文%'
= 所查詢字段 + like '%文%' and 所查詢字段 + like '%龍%'
eg: select * from user where realname like '%文%' and realname like '%龍%'
3. 查詢出既含有“龍”同時(shí)又有“文”的所有記錄
realname like'%龍%文%':查詢所有“龍文”記錄,可以是“龍_文”“_龍文”“龍文_”
“龍”字須在前面,“文”字在后面
select * from user where realname like '%龍%文%'
realname like'%文%龍%':查詢所有“文龍”記錄,可以是“文_龍”“_文龍”“文龍_”
“文”字須在前面,“龍”字在后面
select * from user where realname like '%文%龍%'
二._: 表示任意單個(gè)字符。匹配單個(gè)任意字符,它常用來(lái)限制表達(dá)式的字符長(zhǎng)度語(yǔ)句:
1.查詢出中間含有“林”字的realname字段(前提:名字三個(gè)字)
select * from user where realname like '_林_'
=select * from user where realname like '%_林_%'
只能查詢出類似“余林文”這樣的realname為三個(gè)字且中間一個(gè)字為:“林”
2.查詢出姓林的姓名(名字三個(gè)字)
select * from user where realname like'林__'(這里有兩橫杠)
=select * from user where realname like '%林__%'(這里有兩橫杠)
查詢出姓“林”的realname,且realname的字?jǐn)?shù)必須為3
3.查詢名字最后一個(gè)字為“林”的姓名(名字三個(gè)字)
select * from user where realname like '__林'(這里有兩橫杠)
= select * from user where realname like '%__林%'(這里有兩橫杠)
查詢出姓名最后一個(gè)字為“林”的姓名,且realname的字?jǐn)?shù)必須為3
4.查詢出姓林的姓名(姓名只有兩個(gè)字)
select * from user where realname like '林_'
查詢出姓林的姓名(姓名可以是兩個(gè)字,也可以是三個(gè)字)
select * from user where realname like '%林_%'
5.查詢名字最后一個(gè)字為“林”的姓名(姓名只有兩個(gè)字)
select * from user where realname like '_林'
查詢名字最后一個(gè)字為“林”的姓名(姓名可以有兩個(gè)字,也可以是三個(gè)字)
select * from user where realname like '%_林%'
三.[ ]:表示括號(hào)內(nèi)所列字符中的一個(gè)(類似正則表達(dá)式)。指定一個(gè)字符、字符串或范圍,要求所匹配對(duì)象為它們中的任一個(gè)。
select * from user where realname like '[張蔡王]杰'
查詢出“張杰”,“蔡杰”,“王杰”(而不是“張蔡王杰”)
如 [ ] 內(nèi)有一系列字符(01234、abcde之類的)則可略寫(xiě)為“0-4”、“a-e”
select * from user where realname like '林[1-9]'將會(huì)查詢出“林1”“林2”......“林9”
四.[^ ] :表示不在括號(hào)所列之內(nèi)的單個(gè)字符。其取值和 [] 相同,但它要求所匹配對(duì)象為指定字符以外的任一個(gè)字符。
select * from user where realname like '[^張蔡王]杰'
查詢出不姓“張”,“蔡”,“王”的“林杰”,“趙杰”等
select * from user where realname like '林[^1-4]'
將排除“林1”到“林4”,尋找“林5”、“林6”、……
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享mysql中模糊查詢語(yǔ)法怎么寫(xiě)內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!