1. 程式人生 > 資料庫 >SQL怎麼實現模糊查詢

SQL怎麼實現模糊查詢

模糊查詢的語句一般如下:

SELECT 欄位 FROM 表 WHERE 某欄位 LIKE 條件;

關於條件部分,有以下匹配模式:

1. %:表示零個或多個字元。

可以匹配任意型別和任意長度的字元,有些情況下若是中文,請使用兩個百分號(%%)表示。

select * from user where username like '%張%';

將會把user這張表裡面,列名username中含有的記錄全部查詢出來。


如果需要找到user這張表裡面,欄位username中既有,又有的記錄,可以使用and條件:

select * from user where username like '%張%' and username like '%李%';

可以查詢出來所有包含的所有內容,所在的前後位置無所謂


select * from user where username like '%李%張%';

查出來包含李張的內容,但是查不出來張李的內容。

2. _:表示任意單個字元

匹配單個任意字元,它常用來限制表示式的字元長度。

select * from user where username like '_小_';

只能找到張小明這樣username為三個字且中間一個字是的內容。


select * from user where username like '小__';

只能找到小壞蛋這樣username為三個字且第一個字是

的內容。

3. []:表示括號內所列字元中的一個(類似正則表示式)。

指定一個字元、字串或範圍,要求所匹配的物件為他們中的任一個

[]內有一系列字元(01234,abcde之類的)則可略寫為0-4a-e

select * from user where username like '老[0-9]';

將找出“老1”、“老2”、……、“老9”

4. [^]:表示不在括號所列之內的單個字元。

其取值和[]相同,但它所要求匹配物件為指定字元以外的任一個字元。

select * from user where username LIKE'[^李王秦]飛';

將找出不是“李飛” "王飛”“秦飛“,而是"張飛"

等。