请有人帮助我完成使用多词搜索数据库(具有 2 个全文索引列)并按价格 DESC 排序的任务。
这个查询确实有效(搜索用户输入的关键字,根据匹配的单词数创建一个分数)但是 ORDER BY price 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)按价格降序排序;
Ford Escort | Used | £100
Vauxhall Astra | New | £2000
VW Golf | Used | £500
Nissan Micra | Used | £2000
我想将价格列设置为 ORDER BY DESC 或 ASC 的优先级。
这花了将近 5 年的时间 走到这一步,希望一些知识渊博的人能帮助我完成这个任务。
非常感谢。 安德鲁。
最佳答案
我怀疑价格似乎存储为字符串而不是数字。这是一种解决方法,假设您没有小数点:
order by length(price) desc, price desc
或者,转换为数字:
order by substr(price, 2) + 0
关于PHP/MySQL : Searching Fulltext using MATCH() AGAINST() & ORDER BY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32798689/