📅  最后修改于: 2023-12-03 14:47:34.779000             🧑  作者: Mango
在 SQL 中,我们经常会用到 CONTAINS
和 LIKE
这两个关键词来进行字符串匹配。虽然它们都用于查询匹配的文本,但在某些方面上有所不同。
LIKE
是 SQL 的一个模式匹配操作符,用于在字符串中搜索指定的模式。它通常与通配符符号一起使用来提供更灵活的搜索条件。
下面是一些 LIKE
的使用示例:
-- 查找以 'John' 开头的所有人
SELECT * FROM users WHERE name LIKE 'John%';
-- 查找包含 'doe' 的所有人
SELECT * FROM users WHERE name LIKE '%doe%';
-- 查找以 'j' 开头和以 'n' 结尾的所有人(不区分大小写)
SELECT * FROM users WHERE name LIKE 'j%n' COLLATE Latin1_General_CI_AI;
CONTAINS
是 SQL Server 特定的一个全文搜索函数,用于检查某个列中是否包含某个特定的词语或短语。它通常与其他条件一起使用来过滤结果。
下面是一些 CONTAINS
的使用示例:
-- 查找包含 'apple' 的所有记录
SELECT * FROM products WHERE CONTAINS(description, 'apple');
-- 查找包含 'apple' 和 'juice' 的所有记录
SELECT * FROM products WHERE CONTAINS(description, 'apple AND juice');
-- 查找包含 'apples' 或 'oranges' 的所有记录
SELECT * FROM products WHERE CONTAINS(description, 'apples OR oranges');
需要注意的是,CONTAINS
函数在使用之前需要创建全文索引(Full-Text Index)。如果没有创建索引,将导致语法错误。
总的来说,LIKE
适用于简单的模式匹配,而 CONTAINS
则适用于更复杂的全文搜索。具体使用哪个关键词取决于你的需求和数据库的支持。
希望这个介绍对你有帮助!