2015-09-26 63 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分钟内告诉了我......你的钻石......我无法解释我是多么的棒。 。非常感谢... –