SQL Server包含搜索

时间:2016-05-21 06:35:19

标签: sql-server contains

我有一个名为Employee的表格,如下所示:

 empid       name              city
-------------------------------------
 1      Dhoni and Virat        Pune
 2      Raina or Rahane        Delhi
 3      John                   CA  
 4      Dhoni                  Chennai
 5      Virat                  Mumbai

我在表中使用包含搜索。当我运行此查询时,我无法以正确的顺序得到确切的结果。

SELECT name 
FROM EMPLOYEE 
WHERE CONTAINS(name,'"Dhoni and Virat"') 
ORDER BY ASC

我按以下顺序收到结果。

Dhoni
Virat
Dhoni and Virat

但我希望这些结果按以下顺序

Dhoni and Virat
Dhoni
Virat

任何人都可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

ORDER BY empid ASC会根据您的要求提供结果

SELECT name 
FROM EMPLOYEE 
WHERE CONTAINS(name,'"Dhoni and Virat"') 
ORDER BY empid ASC

答案 1 :(得分:0)

您可以使用“like”代替

SELECT name
FROM `employee`
WHERE `name` LIKE '%Dhoni%' or `name` LIKE '%Virat%'

答案 2 :(得分:0)

您是否尝试过CONTAINSTABLE

SELECT e.name 
FROM EMPLOYEE e
INNER JOIN CONTAINSTABLE(EMPLOYEE, name,'"Dhoni" or "Virat"') as con 
    ON e.empid = con.[KEY]
ORDER BY con.RANK DESC