- 类别:
:doc:`/sql-reference/functions-string`(匹配/比较)
CONTAINS¶
如果 expr1
包含 expr2
,则返回 true。这两个表达式都必须是文本表达式或二进制表达式。
小技巧
您可以使用搜索优化服务,提高用于调用此函数的查询的性能。有关详细信息,请参阅 搜索优化服务。
语法¶
CONTAINS( <expr1> , <expr2> )
实参¶
expr1
要在其中搜索的字符串。
expr2
要搜索的字符串。
返回¶
返回 BOOLEAN 或 NULL:
如果在
expr1
中找到expr2
,则返回 TRUE。如果在
expr1
中找不到expr2
,则返回 FALSE。如果任一输入表达式为 NULL,则返回 NULL。
使用说明¶
对于将字符串与多个指定模式进行匹配的比较,可以使用以下函数:
排序规则详细信息¶
The collation specifications of all input arguments must be compatible.
此函数不支持以下排序规则规范:
示例¶
这些示例使用了 CONTAINS 函数。
确定列值是否包含字符串¶
创建包含字符串值的单列表。
CREATE OR REPLACE TABLE strings_test (s VARCHAR);
INSERT INTO strings_test values
('coffee'),
('ice tea'),
('latte'),
('tea'),
(NULL);
SELECT * from strings_test;
+---------+
| S |
|---------|
| coffee |
| ice tea |
| latte |
| tea |
| NULL |
+---------+
确定列 s
中的值是否包含字符串 te
:
SELECT * FROM strings_test WHERE CONTAINS(s, 'te');
+---------+
| S |
|---------|
| ice tea |
| latte |
| tea |
+---------+
将 CONTAINS 与排序规则结合使用¶
在下面的示例中,对于具有不同排序规则规范的相同实参值,CONTAINS 返回不同的结果。
SELECT CONTAINS(COLLATE('ñ', 'en-ci-ai'), 'n'),
CONTAINS(COLLATE('ñ', 'es-ci-ai'), 'n');
+-----------------------------------------+-----------------------------------------+
| CONTAINS(COLLATE('Ñ', 'EN-CI-AI'), 'N') | CONTAINS(COLLATE('Ñ', 'ES-CI-AI'), 'N') |
|-----------------------------------------+-----------------------------------------|
| True | False |
+-----------------------------------------+-----------------------------------------+