MySQL LIKE模糊查詢
我們知道在MySQL 中使用SQL SELECT 指令來讀取數據, 同時我們可以在SELECT 語句中使用WHERE 子句來取得指定的記錄。
WHERE 子句中可以使用等號 = 來設定取得資料的條件,如 "runoob_author = 'RUNOOB.COM'"。
但有時我們需要取得 runoob_author 欄位含有 "COM" 字元的所有記錄,這時我們就需要在 WHERE 子句中使用 SQL LIKE 子句。
SQL LIKE 子句中使用百分號 %字符來表示任意字符,類似於UNIX或正規表示式中的星號 *。
如果沒有使用百分號 %, LIKE 子句與等號 = 的效果是一樣的。
語法
以下是SQL SELECT 語句使用LIKE 子句從資料表中讀取資料的通用語法:
SELECT field1, field2,...fieldN FROM table_name WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
你可以在WHERE子句中指定任何條件。
你可以在 WHERE 子句中使用LIKE子句。
你可以用LIKE子句代替等號 =。
LIKE 通常與 % 一同使用,類似於一個元字元的搜尋。
你可以使用 AND 或 OR 來指定一個或多個條件。
你可以在 DELETE 或 UPDATE 指令中使用 WHERE...LIKE 子句來指定條件。
mysql中模糊查詢的四種用法:
一.%:表示任意0個或多個字元。可匹配任意類型和長度的字符,有些情況下若是中文,請使用兩個百 分號(%%)表示。
*註:like '%龍%':查詢出所有含有「龍」的記錄
1. 所查詢欄位like '%龍%'
eg:select * from user where realname like '%龍%'
把含有「龍」字的realname 欄位搜尋出來
#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. 查詢出所有含有「龍」同時又有「文」的記錄
realname like'%龍%文%':查詢所有「龍文」記錄,可以是「龍_文」「_龍文」「龍文_」
中下「龍」的後面,「龍」字在後面,「文字」字上
c%#se"#n;realname like'%文%龍%':
查詢所有「文龍」記錄,可是「文_龍」「_文龍」「文龍_」字須在前面,「龍」字在後面
select * from user where realname like '%文%龍%'
##二._:表示任意單一字元。匹配單一任意字符,它常用來限製表達式的字符長度語句:
1.查詢出中間含有“林”字的realname字段(前提:名字三個字)
select * from user where realname like '_林_'=select * from user where realname like '%_林_%' 只能查詢出類似「餘林文」這樣的realname為三個字且中間一個字為:「林」
2.查詢出姓林的姓名
(名字三個字)select * from user where realname like'林__'(這裡有兩橫槓)=select * from user where realname like '%林__%'(這裡有兩橫槓)
查詢出姓「林」的realname,且realname的字數必須為3
#3.查詢名字最後一個字為「林」的姓名(名字三個字)
select * from user where realname like '__林'(這裡有兩橫槓)
= select * from user where realname like '%__林%'(這裡有兩橫槓)
查詢出姓名最後一個字為「林」的姓名,且realname的字數必須為3
#4.查詢出姓林的姓名 (姓名只有兩個字)
select * from user where realname like '林_'
##查詢出姓林的姓名(姓名可以是兩個字,也可以是三個字)
select * from user where realname like '%林_%'5.查詢名字最後一個字為「林」的姓名(姓名只有兩個字)
select * from user where realname like '_林'#查詢名字最後一個字為「林」的姓名(名字可以有兩個字,也可以是三個字)
select * from user where realname like '%_林%' 三.[ ]:表示括號內所列字元中的一個(類似正規表示式)。指定一個字元、字串或範圍,要求所匹配物件為它們中的任一個。 select * from user where realname like '[張蔡王]傑'#查詢出“張傑”,“蔡傑”,“王傑”(而不是“張蔡王傑」)
如[ ] 內有一系列字符(01234、abcde之類的)則可略寫為“0-4”、“a-e” #select * from user where realname like '林[1-9]'將會查詢出「林1」「林2」......「林9」四.[^ ] :表示不在括號所列之內的單一字元。其取值和 [] 相同,但它要求所匹配物件為指定字元以外的任一個字元。 select * from user where realname like '[^張蔡王]傑'#查詢出不姓“張”,“蔡”,“王”的“林杰”,“趙傑”等select * from user where realname like '林[^1-4]'#將排除“林1”到“林4”,尋找“林5”、 「林6」、… 推薦教學:以上是mysql中模糊查詢語法是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!