php - mysql 在短语中搜索关键字,按找到的最多关键字排序

标签 php mysql codeigniter

我有一个 mysql 表,其中有 3 列,其中包含用于常见问题解答搜索的数据,我想让用户输入他们想要回答的问题,并在表中的 3 列中搜索出现在任何问题中的关键字。表中的列。并按关键字匹配数最多的行对结果进行排序。

我正在使用 Code Igniter 框架。目前,我的模型中有一个带有全文搜索的查询:

$new_query = 'This is a question';
$sql = "SELECT ques_id, ques_desc FROM ec_questions WHERE MATCH (ques_desc,ques_tags,ques_answer) AGAINST (? IN BOOLEAN MODE) LIMIT 15";
$query = $this->db->query($sql, array($new_query));
return $query->result_array();

但是上面似乎并没有真正返回我想要的结果,有帮助吗?

谢谢

“显示创建表”结果: http://pastebin.com/nKd1JT5n

最佳答案

我认为您不需要IN BOOLEAN MODE,因为这增加了对特殊修饰符+-等的支持 http://dev.mysql.com/doc/refman/5.5/en//fulltext-boolean.html

此外,implode() 不能直接作用于字符串

字符串内爆(字符串 $glue ,数组 $pieces )

尝试

$new_query = '这是一个问题';

而不是

$new_query = implode(' ', '这是一个问题');

关于php - mysql 在短语中搜索关键字,按找到的最多关键字排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13409195/

相关文章:

php - 如何从 EXIF 获取相机序列号?

php - 如何在 CakePHP 中制作或调用侧边栏

c# - 如何创建 mysql 更新查询以在 c#.net windows 应用程序的一条语句中更新多行

model-view-controller - 在 MVC 设置中,文本应该在哪里格式化?

php - Codeigniter Active Record SQL 语法错误

php - codeigniter 查询生成器将使用几乎所有内容更新数据库

cakephp - symfony vs cakephp

javascript - 显示星期几

php - Mysql/PHP 在一个查询中选择 Table1 或 Table2 中存在的行

java - 如何从数据库获取 BLOB 并将其像图像一样显示