Ordery和Like没有按预期工作

时间:2016-07-29 04:31:52

标签: sql sql-server

我正在使用autosearch UI,我需要在文本框中搜索我搜索的字母中列出的名称。防爆。您可以将搜索框作为搜索框在Google搜索引擎中运行,当我们开始输入字母时,它会显示该搜索文本下的列表。

下面是我在使用LIKE时得到结果的查询但是它没有按预期工作,有两个屏幕截图,目前我得到的结果就像第一张照片。

我甚至觉得order by也没有用。

注意: 我需要Order By

即使有从d开始的列表,它也没有首先显示。

enter image description here

第二张图片:

enter image description here

如果您看到第二个结果正确,但为什么我应该删除ProfileName下的通配符语法。

让我知道如何解决这个问题。

2 个答案:

答案 0 :(得分:0)

您的结果正确显示了您在查询中写的内容。

第一个结果显示所有带

的记录
  • IsPrimary = 1LastName以' d',OR
  • 开头
  • ProfileName以' d'
  • 开头

第二个结果显示

的记录
  • IsPrimary = 1LastName以' d',OR
  • 开头
  • ProfileName =' d'

请注意,LIKE不区分大小写。

如果要将搜索优先级排序为LastName,则优先级为ProfileName。

这样做

Select * FROM 

(
SELECT [your list here], 1 as priority
FROM Employee E
    INNER JOIN [your list here]
WHERE
    EP.IsPrimary = 1 AND E.LastName LIKE @SearchByChar + '%'

UNION 

SELECT [your list here], 2 as priority
FROM Employee E
    INNER JOIN [your list here]
WHERE
    P.ProfileName LIKE @SearchByChar + '%'
) s

ORDER BY priority

答案 1 :(得分:0)

如果您希望$httpBackend .whenGET('/testpath/testurl/z/values?max=10&min=1').respond(function(method, url, data, headers, params) { // params will be { // max: 10, // min: 1 // } 匹配显示在个人资料匹配项上方,您可以执行以下操作:

name