SQL Like
SQL LIKE 运算符:字符串模式匹配
Section titled “SQL LIKE 运算符:字符串模式匹配”LIKE 运算符用于 WHERE 子句,以在包含文本数据的列中搜索指定的模式。它是进行灵活字符串比较的强大工具。
SQL LIKE 运算符详解
Section titled “SQL LIKE 运算符详解”当您需要查找列的字符串值匹配特定模式而不是精确字符串的行时,LIKE 运算符是您的解决方案。它使用通配符来定义这些模式。
SQL LIKE 语法
Section titled “SQL LIKE 语法”SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;
标准通配符:
Section titled “标准通配符:”%(百分号):代表零个、一个或多个字符。'A%':匹配任何以 ‘A’ 开头的字符串。(例如 ‘Apple’, ‘Ant’, ‘A’)'%Z':匹配任何以 ‘Z’ 结尾的字符串。(例如 ‘Buzz’, ‘Quiz’)'%word%':匹配任何包含 ‘word’ 的字符串。(例如 ‘keyword’, ‘password’)
_(下划线):代表单个字符。'H_t':匹配 ‘Hot’, ‘Hat’, ‘Hit’。'__X%':匹配 ‘X’ 为第三个字符的任何字符串。
大小写敏感性:LIKE 运算符的大小写敏感性取决于数据库系统和列的排序规则设置。有些数据库默认区分大小写(例如 PostgreSQL),而另一些则不区分(例如 SQL Server, Windows 上的 MySQL)。您通常可以使用 LOWER() 或 UPPER() 函数对列和模式进行处理以进行不区分大小写的搜索:WHERE LOWER(column_name) LIKE LOWER(pattern);
示例数据库:Northwind
Section titled “示例数据库:Northwind”我们使用 Northwind 示例数据库。
“Customers” 表的示例数据:
CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden
SQL LIKE 运算符示例
Section titled “SQL LIKE 运算符示例”- 选择 City 以字母 “L” 开头的所有客户:
SELECT CustomerName, CityFROM CustomersWHERE City LIKE 'L%';- 选择 City 以字母 “n” 结尾的所有客户:
SELECT CustomerName, CityFROM CustomersWHERE City LIKE '%n';- 选择 Country 包含模式 “land” 的所有客户:
SELECT CustomerName, CountryFROM CustomersWHERE Country LIKE '%land%';- 选择 CustomerName 第二个字母是 ‘o’ 的所有客户:
SELECT CustomerNameFROM CustomersWHERE CustomerName LIKE '_o%';使用 NOT LIKE
Section titled “使用 NOT LIKE”NOT LIKE 运算符允许您选择不匹配模式的记录。
- 选择 Country 不包含模式 “land” 的所有客户:
SELECT CustomerName, CountryFROM CustomersWHERE Country NOT LIKE '%land%';转义通配符:
Section titled “转义通配符:”如果您需要搜索字面意义上的 % 或 _ 字符,必须使用 ESCAPE 子句。例如,查找包含 ‘50%’ 的名称:
SELECT ProductNameFROM ProductsWHERE ProductName LIKE '%50\%%' ESCAPE '\'; -- '\' 在此处是转义字符实际应用:LIKE 对于搜索功能、基于部分信息的 数据筛选 和 数据验证规则 至关重要。