📜  sql contains vs like - SQL (1)

📅  最后修改于: 2023-12-03 14:47:34.779000             🧑  作者: Mango

SQL Contains vs Like

在 SQL 中,我们经常会用到 CONTAINSLIKE 这两个关键词来进行字符串匹配。虽然它们都用于查询匹配的文本,但在某些方面上有所不同。

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

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 则适用于更复杂的全文搜索。具体使用哪个关键词取决于你的需求和数据库的支持。

希望这个介绍对你有帮助!