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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。