如何在关键字附近获取文字?

时间:2010-11-21 15:01:25

标签: php mysql full-text-search

我正在后端使用PHP在mysql表上进行全文搜索,我希望能够在用户搜索的关键字之前和之后选择一些文本,并像Google一样向他们展示。

例如,如果用户搜索“他们的世界” 在内容为:

的列中
  

和你吐的这些孩子,   因为他们试图改变他们的世界   免于你的咨询。他们是   很清楚他们要去做什么   通过...

结果如下:

  

“......他们试图改变自己的世界   是不是......“

是否可以直接使用SQL实现类似的功能,还是应该获取所有内容并使用PHP并使用正则表达式?

谢谢。

1 个答案:

答案 0 :(得分:2)

SUBSTRING(column_name,(locate('word',column_name)-20),40) as your_sub_string

从我的头脑中,这样的东西应该可以工作(无法测试),因为locate将返回wordcolumn_name最初找到的位置,而substring将返回column_name的子字符串,从word中第一次出现column_name的位置开始,减去20个字符,长度为40个字符。