2012-07-13 146 views
0

我寫一個PHP/MYSQL搜索功能,這需要用戶搜索查詢(字符串),並通過預定義的字段和數量它從一個表匹配到記錄(例如:臥室= 2,MAX_PRICE < 100)如何通過另一個查詢來訂購MYSQL查詢?

這工作正常,但現在我想按條件排列結果。因此,例如:

  • 的用戶查詢是 「2臥室頂樓

  • 功能匹配有一個值,該行 臥室

記錄

我現在想要保持匹配的結果,但要根據匹配的結果排序結果描述一行的「複式」的值(在描述字符串的任何地方(這是很多的話)的長字符串)

我可以匹配在說明書中,詞語「複式」的結果,但用匹配結果首先排序結果的最佳方法是什麼?

因此,基本上,您如何通過另一個查詢來排序結果?

回答

3

你不知道。你寫一個更復雜的ORDER BY條款。

SELECT ... 
    ORDER BY ..., description NOT LIKE "%penthouse%" 

(我們反轉表達,因爲假單前真)

+0

好一個!謝謝 – 2012-07-13 17:52:12

+0

我忘了提及,如何處理查詢字符串中的多個單詞(例如:帶按摩浴缸的複式房)。那麼,我如何按照搜索字符串中單詞最多的描述進行排名呢?如果有幫助,我已將搜索查詢字符串分解爲數組? – 2012-07-13 17:56:42

+1

這很難。您需要先獲得匹配計數,然後對結果進行反向排序。 – 2012-07-13 18:04:32