我們有一個搜索查詢,允許用戶輸入一個字符串,然後通過LIKE'%string%'搜索3個單獨的字段。這些字段是:根據找到的字段排序SQL結果
- 名稱
- 說明
- 類型
當然後將結果返回而現在只是爲了他們隨意。我們希望首先按名稱字段中的結果排序結果,然後再按說明字段中的項目排序,最後在類型字段中排序。因爲我們的分頁和排序也與此相關,所以我們確實希望它在一個記錄集中返回。這甚至有可能嗎?
在此先感謝。
我們有一個搜索查詢,允許用戶輸入一個字符串,然後通過LIKE'%string%'搜索3個單獨的字段。這些字段是:根據找到的字段排序SQL結果
當然後將結果返回而現在只是爲了他們隨意。我們希望首先按名稱字段中的結果排序結果,然後再按說明字段中的項目排序,最後在類型字段中排序。因爲我們的分頁和排序也與此相關,所以我們確實希望它在一個記錄集中返回。這甚至有可能嗎?
在此先感謝。
在MySQL中,下面應該工作:
SELECT *
FROM atable
WHERE Name LIKE '%string%'
OR Description LIKE '%string%'
OR Type LIKE '%string%'
ORDER BY
CASE
WHEN Name LIKE '%string%' THEN 1
WHEN Description LIKE '%string%' THEN 2
WHEN Type LIKE '%string%' THEN 3
END
;
完美,謝謝! – jeremykrall 2013-02-11 19:21:49
你可以試試這個:
Select *
from Tablename
where Name like '%string%'
and description like '%string%'
and type like '%string%'
order by name,description,type
請試試這個:
Select *
from Table
where Name like '%string%'
and description like '%string%'
and type like '%string%'
order by name,description,type
嗯,它似乎沒有以正確的順序返回它們,因爲如果它發現它在描述中,描述的名稱比它匹配的「名稱」的字母順序更高,然後首先顯示它。我希望名稱結果能夠事先顯示......可能必須對它進行一些後期排序。 – jeremykrall 2013-02-11 06:17:21
MSSQL,MySQL和甲骨文?查詢的外觀如何?你試過什麼了? – rikitikitik 2013-02-11 05:20:07
它是MySQL,現在它看起來像下面的一個,除了我只是按名稱排序。從表中選擇*其中名稱如'%string%'和類似'%string%'的描述並鍵入'%string%'按名稱排序 – jeremykrall 2013-02-11 06:15:50