我在 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/