php - 如何让mysql在全文检索时自动加粗匹配的单词

标签 php mysql search relevance

我试图在标题本身中准确地解释我的问题。我可以在mysql查询本身中用包围查询中的匹配词吗? MySQL 查询是:

选择 ID、名字、姓氏、添加评论 WHERE 匹配(名字、姓氏、添加评论) AGAINST('一些示例文本'WITH QUERY EXPANSION)

mysql 的结果应该是这样的:

id | FirstName       | LastName             | addcomments 

1  |<b>some</b> name | lastname <b>text</b> | comments have <b>some sample text</b> inside

任何帮助将不胜感激

最佳答案

这是一个毫无疑问的问题,因为 MySQL 根本不格式化结果,而是将数据集传递给应用程序。然后由应用程序根据该数据执行其所需操作。

如果您使用 PHP,则可以在结果上使用 str_replace 将关键字替换为粗体版本的关键字

这里还有一个安全问题 - 如果您的数据库返回 HTML,您将必须使用编码输出内容。这意味着,如果有人设法将恶意记录注入(inject)您的数据库,您的网站可能会遭受 XSS 攻击或其他令人讨厌的代码

关于php - 如何让mysql在全文检索时自动加粗匹配的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4978356/

相关文章:

javascript - 在php中提交或页面刷新后如何保持复选框的选中状态?

php - 根据其他变量值和静态文本构造一个 PHP 变量名

php - 在函数 pdo php 中传递参数

java - transient 属性值异常 : object references an unsaved transient instance - save the transient instance before flushing

c - 如何有效地找到另一个数组中子数组的所有匹配项?

MySQL:从多个表中选择*,其中column1或column2 =查询

php - 有没有办法限制下拉框的大小

mysql - 检查具有事件状态的记录或获取状态字段然后检查哪个更好

mysql - 用于在 MySQL 5.6 或更高版本中更快查询的索引列

java - 当我在 SearchView 中输入内容时,列表的大小没有增加?