您好,登錄后才能下訂單哦!
這篇文章主要介紹了mysql中模糊查詢語法怎么寫,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
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'%龍%文%':查詢所有“龍文”記錄,可以是“龍_文”“_龍文”“龍文_”
“龍”字須在前面,“文”字在后面
select * from user where realname like '%龍%文%'
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中模糊查詢語法怎么寫內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。