2015-09-26 131 views
1

請有人可以幫我完成我的任務,使用多詞搜索數據庫(有2個全文索引列),並按價格DESC排序。PHP/MySQL:使用MATCH()搜索全文()AGAINST()&ORDER BY?

此查詢無效(搜索用戶輸入的關鍵詞,根據有多少單詞匹配創建分數),但ORDER BY價格DESC似乎有點奇怪。例如

SELECT *, MATCH(title,description) AGAINST('nissan ford astra golf' IN BOOLEAN MODE) AS relevance FROM listings WHERE MATCH(title,description) AGAINST('nissan ford astra golf' IN BOOLEAN MODE) ORDER BY price DESC;

Ford Escort | Used | £100 
Vauxhall Astra | New | £2000 
VW Golf | Used | £500 
Nissan Micra | Used | £2000 

我想price列設置爲優先,以ORDER BY DESC或ASC。

這花了近5年的時間到了 得到這麼遠,所以希望有一些知情的人可以幫我完成這個misson。

很多預先感謝。 Andrew。

+0

它看起來像你的'訂單甚至沒有被執行by'。無論鍵是什麼,「£2000」的兩個值應該相鄰。在某些情況下,價格是否可以存儲爲帶有空格的字符串? –

回答

0

我懷疑價格似乎存儲爲一個字符串而不是數字。這裏是一個變通,假設你有沒有小數點:

order by length(price) desc, price desc 

或者,轉化爲數字:

order by substr(price, 2) + 0 
+0

謝謝戈登,我花了5年的時間嘗試搜索工作,在各種網站上留下了大量問題,並在10分鐘內告訴了我......你的鑽石......我無法解釋我是多麼的棒。 。非常感謝... –