mysql - 如何在 mysql 中使用全文搜索而不使用特殊标签(<html>、<p> 等)

标签 mysql full-text-search

我在 mysql 中使用下一个代码的帮助进行搜索:

SELECT * FROM `articles` WHERE MATCH (title,body) AGAINST ('database');

如何在没有特殊标签的mysql中使用搜索( <html><p> 等)?

最佳答案

有一个 php 函数可以做到这一点

strip_tags($text);

您可以在此处找到更多信息 http://php.net/manual/en/function.strip-tags.php

如果你仍然想在 mysql 中执行此操作,则必须定义自己的函数

delimiter ||
DROP FUNCTION IF EXISTS strip_tags||
CREATE FUNCTION strip_tags( x longtext) RETURNS longtext
LANGUAGE SQL NOT DETERMINISTIC READS SQL DATA
BEGIN
DECLARE sstart INT UNSIGNED;
DECLARE ends INT UNSIGNED;
SET sstart = LOCATE('<', x, 1);
REPEAT
SET ends = LOCATE('>', x, sstart);
SET x = CONCAT(SUBSTRING( x, 1 ,sstart -1) ,SUBSTRING(x, ends +1 )) ;
SET sstart = LOCATE('<', x, 1);
UNTIL sstart < 1 END REPEAT;
return x;
END;
||
delimiter ;

定义函数后在搜索查询中调用该函数

$q="CALL strip_tags(SELECT textarea FROM table where ....)"

关于mysql - 如何在 mysql 中使用全文搜索而不使用特殊标签(<html>、<p> 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13409575/

相关文章:

mysql - 序列化范围类型和解析器

graph - 优化 arangodb 中的查询

php - sphinx 不匹配正确的符号

ruby-on-rails - 如何在 Heroku 上使用 Elasticsearch

java - 我在尝试连接到本地主机 phpmyadmin 时遇到错误

php - 从 <option> 中选择多个字段并将它们添加到数据库

java - 将Java连接到MySQL数据库

php - iCal 后端 - 重复日期

mysql - 如何使用mysql fulltext获取连续单词的频率

Mysql 全文搜索按相关性排序结果不正确的匹配参数