1

如何使用 CONTAINS 子句从表的 2 列中进行搜索。例如:-假设我有一个名为 CONTACT 的表。它包含 FIRST_NAME、LAST_NAME、USERNAME、EMAIL 等列。

现在,如果我想搜索一个字符串,例如使用 CONTAINS 子句在 USERNAME 列中说“ABCD”,我会写:

SELECT * 
FROM CONTACT 
WHERE (CONTAINS(USERNAME, 'ABCD', 1)> 0);

它给了我想要的结果。但是如果我必须在 2 列上搜索字符串怎么办?我尝试使用:-

SELECT * 
FROM CONTACT 
WHERE (CONTAINS(USERNAME, 'ABCD', 1)> 0)
AND (CONTAINS(FIRST_NAME, 'ABCD', 1)> 0);

但这给了我一个错误。请帮我解决一下这个。

PS:已根据使用 CONTAINS 子句的要求创建了列索引。

4

2 回答 2

3

您的标签不是唯一的,请尝试:

SELECT * 
FROM CONTACT 
WHERE (CONTAINS(USERNAME, 'ABCD', 1)> 0)
AND (CONTAINS(FIRST_NAME, 'ABCD', 2)> 0);
于 2013-03-18T10:34:00.753 回答
3

实际上,如果您多次使用 contains 子句,则可以跳过标签:

SELECT * FROM CONTACT WHERE (CONTAINS(USERNAME, 'ABCD')> 0) AND (CONTAINS(FIRST_NAME, 'ABCD')> 0);

它会自动添加标签。

于 2014-06-11T18:42:54.590 回答