PHP/MySQL : Searching Fulltext using MATCH() AGAINST() & ORDER BY?

标签 php mysql search full-text-indexing

请有人帮助我完成使用多词搜索数据库(具有 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/

相关文章:

php - 如何在 PHP 代码中添加 PHP 代码?

php - 位于索引的哪个位置

php:循环遍历json数组

php - 使用 ngrok 通过 HTTP/代理连接到 Telegram Bot API

mysql - 当我尝试使用 'grant' 设置远程访问时,MySQL 服务器崩溃了

java - 在 Java 中搜索

mysql - 跨多个相关表的相关性搜索

php - mysql_num_rows():提供的参数不是有效的MySQL结果资源

java - 搜索小部件,NullPointer?

php mysql 搜索只给出 1 个结果