SQL LIKE 運算符與使用WHERE 子句在列中搜索指定模式。 LIKE 運算符查找並返回符合給定模式的行。
LIKE 運算符是不區分大小寫大多數數據庫係統默認情況下。這意味著,如果您使用 LIKE 運算符搜索 “apple”,它將返回包含 “Apple”、“APPLE”、“aPpLe” 等的結果。
為了使 LIKE 運算符區分大小寫,您可以使用“MySQL 中的 BINARY”關鍵字或其他數據庫係統中的 “COLLATE” 關鍵字。
例如:
SELECT * FROM products WHERE name LIKE BINARY 'apple%'
以下查詢將僅返回名稱以 “apple” 開頭且拚寫完全一樣的產品,不帶大寫字母。
用法
SELECT column1, column2, ... FROM table_name WHERE columnN LIKE pattern;
LIKE 運算符通配符
通配符與 LIKE 運算符一起使用來搜索字符串中的特定模式。通配符替換字符串中的一個或多個字符。 SQL中有四個通配符:
- %(百分比):代表零個或多個字符。
- _(下劃線):代表單個字符。
- [](方括號):代表括號內的任何單個字符。
- -(連字符):指定括號內的字符範圍。
通配符示例
下表顯示了一些有關如何編寫通配符及其含義的示例:
圖案 | 意義 |
---|---|
'A%' | 匹配以‘a’開頭的字符串 |
'%A' | 匹配以 ‘a’ 結尾的字符串 |
'在' | 匹配包含以 ‘a’ 開頭並以 ‘t’ 結尾的字符串。 |
'%哇%' | 匹配任意位置包含子字符串‘wow’的字符串。 |
'_哇%' | 匹配第二個位置包含子字符串‘wow’的字符串。 |
'_A%' | 匹配第二個位置包含‘a’的字符串。 |
'A_ _%' | 匹配以“a”開頭且至少包含 2 個以上字符的字符串。 |
Demo SQL 數據庫
在本關於 SQL LIKE 運算符的教程中,我們將在示例中使用下表。
供應商表
SupplierID | 名字 | 地址 |
---|---|---|
S1 | 模範供應商 | 21-3, 奧克拉, Delhi |
S2 | 芒果國度 | 21,法裏達巴德,哈裏亞納邦 |
S3 | 加拿大商業 | 6/7, 奧克拉二期, Delhi |
S4 | 商隊商人 | 2-A, 皮坦普拉, Delhi |
S5 | 哈裏什父子 | 古爾岡, NCR |
S6 | 歐姆供應商 | 2/1, 法裏達巴德, 哈裏亞納邦 |
要在您的係統上創建此表,請編寫以下 SQL 查詢:
CREATE TABLE Supplier (
SupplierID CHAR(2) PRIMARY KEY,
Name VARCHAR(50),
Address VARCHAR(100)
);
INSERT INTO Supplier (SupplierID, Name, Address)
VALUES
('S1', 'Paragon Suppliers', '21-3, Okhla, Delhi'),
('S2', 'Mango Nation', '21, Faridabad, Haryana'),
('S3', 'Canadian Biz', '6/7, Okhla Phase II, Delhi'),
('S4', 'Caravan Traders', '2-A, Pitampura, Delhi'),
('S5', 'Harish and Sons', 'Gurgaon, NCR'),
('S6', 'Om Suppliers', '2/1, Faridabad, Haryana');
SQL LIKE E示例
讓我們看一下 SQL 中 LIKE 運算符的一些示例,並了解它的工作原理。
示例 1
從供應商表中檢索供應商 ID、名稱和地址,其中供應商名稱以 k 開頭。
SELECT SupplierID, Name, Address FROM Suppliers WHERE Name LIKE 'Ca%';
輸出:
S3 | 加拿大商業 | 6/7, 奧克拉二期, Delhi |
S4 | 商隊商人 | 2-A, 皮坦普拉, Delhi |
示例 2
檢索整個表,其中地址包含 OKHLA。
SELECT * FROM Suppliers WHERE Address LIKE '%Okhla%';
輸出:
S1 | 模範供應商 | 21-3, 奧克拉, Delhi |
S3 | 加拿大商業 | 6/7, 奧克拉二期, Delhi |
實施例3
檢索名稱中第二個子字符串中包含“ango”的供應商的供應商ID、名稱和地址。
SELECT SupplierID, Name, Address FROM Suppliers WHERE Name LIKE '_ango%';
輸出:
S2 | 芒果國度 | 21,法裏達巴德,哈裏亞納邦 |
SQL LIKE 應用程序
LIKE 運算符在地址過濾等情況下非常足智多謀,在這種情況下,我們隻知道整個地址的一部分或一部分(例如位置或城市),並希望基於此檢索結果。可以根據要求巧妙地利用通配符來生成更好、過濾程度更高的元組。
關於 LIKE 運算符的要點
- LIKE operator is used to search for specific patterns in a column.
- It is mostly used with WHERE clause for finding or filtering specific data.
- Like Operator is case-insensitive by default, to make it case sensitive, we can use BINARY keyword.
- LIKE operator has 4 wild cards, which we can use with LIKE operator to specify the filter. The wild cards are: %,_,[] and -.
相關用法
- SQL LTRIM()用法及代碼示例
- SQL Datetime轉Date用法及代碼示例
- SQL Date轉Datetime用法及代碼示例
- SQL NUMERIC轉NVARCHAR用法及代碼示例
- SQL UPPER()用法及代碼示例
- SQL RTRIM()用法及代碼示例
- SQL FLOAT轉NVARCHAR用法及代碼示例
- SQL Datetime轉Epoch用法及代碼示例
- SQL Epoch Time轉Date用法及代碼示例
- SQL Datetime轉String用法及代碼示例
- SQL VARCHAR轉INT用法及代碼示例
- SQL NOT用法及代碼示例
- SQL IN用法及代碼示例
- SQL NOT EQUAL用法及代碼示例
- SQL IS NOT NULL用法及代碼示例
- SQL IS NULL用法及代碼示例
- SQL DROP和TRUNCATE的區別用法及代碼示例
- SQL Server CHARINDEX()用法及代碼示例
- SQL Server DIFFERENCE()用法及代碼示例
- SQL Server IIF()用法及代碼示例
- SQL Server ASCII()用法及代碼示例
- SQL Server LOG()用法及代碼示例
- SQL Server LOG10()用法及代碼示例
- SQL Server ATN2()用法及代碼示例
注:本文由純淨天空篩選整理自佚名大神的英文原創作品 SQL LIKE Operator。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。