如何使用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子句的要求创建了列的索引。
答案 0 :(得分:3)
您的标签不是唯一的,请尝试:
SELECT *
FROM CONTACT
WHERE (CONTAINS(USERNAME, 'ABCD', 1)> 0)
AND (CONTAINS(FIRST_NAME, 'ABCD', 2)> 0);
答案 1 :(得分:3)
实际上,如果您多次使用包含子句,那么您可以跳过标签:
SELECT *
FROM CONTACT
WHERE (CONTAINS(USERNAME, 'ABCD')> 0)
AND (CONTAINS(FIRST_NAME, 'ABCD')> 0);
自动添加标签。