0

首先,我为糟糕的表结构道歉,这不是我的决定,而是存在于我之前。

无论如何,我有一张表tbl_cities,它是您猜对了,城市的列表(但无论出于何种原因,都存储在 column 中[desc])。我想做一个漂亮的 AJAX 文本输入,当你输入它时,它会尝试找出你正在输入的城市并提供它们作为建议。有点像这个例子。所以我的查询看起来像这样

SELECT [desc] FROM tbl_cities WHERE [desc] LIKE 'phil%'

哪个工作正常。但是,我看到这张表中有一堆拼写错误,所以我想添加模糊逻辑。我想继续获得与他们输入的第一个字母相匹配的城市,所以我有这个查询。

SELECT [desc] FROM tbl_cities WHERE [desc] LIKE 'phil%'
OR DIFFERENCE('phil', [desc])>3

现在我想根据[desc] LIKE 'phil%'之前的模糊逻辑部分进行排序。所以在这个例子中,费城应该出现在随机城市之前,比如PAOLAPOWELL

4

1 回答 1

2

我会尝试这样的事情:

order by case when [desc] like 'phil%' then 0 else 1 end, [desc]
于 2013-06-10T22:13:37.457 回答