PHP / MySQL:使用MATCH()搜索全文()AGAINST()& ORDER BY?

时间:2015-09-26 15:17:35

标签: php mysql search full-text-indexing

请有人帮我完成我的任务,搜索数据库(有2个全文索引列)使用多个单词和按价格DESC排序。

此查询确实有效(搜索用户输入的关键字,根据匹配的单词数创建得分)但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年的时间 得到这一点,所以希望一些知识渊博的家伙可以帮助我完成这个问题。

非常感谢提前。 安德鲁。

1 个答案:

答案 0 :(得分:0)

我怀疑价格似乎存储为字符串而不是数字。假设您没有小数点,这是一个解决方法:

order by length(price) desc, price desc

或者,转换为数字:

order by substr(price, 2) + 0