模式匹配条件(Pattern-matching Conditions)用来比较字符数据。
LIKE
条件用于模式匹配。相等运算符(=)指的是一个字符值与另一个字符值完全匹配,而 LIKE
条件通过在第一个值中搜索由第二个字符值指定的模式来将一个字符值的一部分与另一个字符值进行匹配。
LIKE
使用输入字符集定义的字符来计算字符串。
语法
char1 [NOT] LIKE char2 [ ESCAPE esc_char ]
除了 LIKE
,特殊的模式匹配字符 _
表示值中的一个字符恰好匹配,%
表示值中的零个或多个字符匹配。模式 %
不能与 NULL
匹配。
参数
参数 |
说明 |
---|---|
char1 |
字符表达式,例如字符列,称为搜索值。 |
char2 |
字符表达式,通常是文字,称为模式。 |
esc_char |
字符表达式,通常是文字, |
示例
以下语句使用了 LIKE
:
SELECT last_name FROM employees WHERE last_name LIKE '%A_B%' ESCAPE '' ORDER BY last_name;
ESCAPE ''
会将
%A_B%
中
后面的模式匹配符‘_’解释为普通的字符。
SELECT salary FROM employees WHERE 'SM%' LIKE last_name ORDER BY salary;
REGEXP_LIKE
用于正则表达式匹配。REGEXP_LIKE
使用输入字符集定义的字符评估字符串。
REGEXP_LIKE(source_char, pattern [, match_param ])
参数 |
说明 |
---|---|
source_char |
用作搜索值的字符表达式,数据类型可以是 |
pattern |
正则表达式,数据类型可以是 |
source_char |
数据类型 |
如果模式的数据类型与 source_char
的数据类型不同,OceanBase 将模式转换为 source_char
的数据类型。
创建表 employees,并向里面插入数据。执行以下语句:
CREATE TABLE employees(manager_id INT, first_name varchar(50), last_name varchar(50), hiredate varchar(50),SALARY INT);
INSERT INTO employees VALUES(300, 'Steven', 'King', '2019-09-11',23600);
INSERT INTO employees VALUES(200, 'Steven', 'Markle', '2019-11-05', 23800);
INSERT INTO employees VALUES(100, 'Deven', 'Part', '2018-10-01',24000);
INSERT INTO employees VALUES(200, 'Carlos', 'Ross', '2019-06-11',23500);
INSERT INTO employees VALUES(200, 'Teven', 'Bell', '2019-05-25', 23000);
INSERT INTO employees VALUES(200, 'Stephen', 'Stiles', '2018-06-11',24500);
INSERT INTO employees VALUES(100, 'Ame', 'De Haan', '2018-05-01',11000);
INSERT INTO employees VALUES(100, 'Jon', 'Errazuriz', '2017-07-21', 1400);
COMMIT;
查询返回名字为 Steven 或 Stephen 的员工的名字和姓氏(其中 first_name
以 Ste 开头,以 en 结尾,中间是 v 或 ph),执行以下语句:
SELECT first_name, last_name FROM employees WHERE REGEXP_LIKE (first_name, '^Ste(v|ph)en$')
ORDER BY first_name, last_name;
查询结果如下:
+------------+-----------+
| FIRST_NAME | LAST_NAME |
+------------+-----------+
| Stephen | Stiles |
| Steven | King |
| Steven | Markle |
+------------+-----------+
描述该语句仅支持使用 SQL_TEXT 创建的 Outline,可用于添加绑定 Outline 和限流规则。格式ALTER OUTLINE outline_name ADD stmt...
SYSDATE函数返回当前日期。注意该函数不依赖于当前会话时区,而是依赖于数据库宿主机的 Linux 操作系统的时区。语法SYSDATE...
Doublejava.lang.Object |---java.lang.Number |---|---java.lang.Doublepublic final class Doubleextends Numberimplements Co...
Objectjava.lang.Objectpublic class ObjectClass Object 是类层次的根。 每个类都有 Object 作为超类。 所有对象,包括数组,都...
安全指引开发原则与注意事项本文档整理了部分小程序开发中常见的安全风险和漏洞,用于帮助开发者在开发环节中发现和修复相关漏洞...