我正在后端使用PHP在mysql表上进行全文搜索,我希望能够在用户搜索的关键字之前和之后选择一些文本,并像Google一样向他们展示。
例如,如果用户搜索“他们的世界” 在内容为:
的列中和你吐的这些孩子, 因为他们试图改变他们的世界 免于你的咨询。他们是 很清楚他们要去做什么 通过...
结果如下:
“......他们试图改变自己的世界 是不是......“
是否可以直接使用SQL实现类似的功能,还是应该获取所有内容并使用PHP并使用正则表达式?
谢谢。
答案 0 :(得分:2)
SUBSTRING(column_name,(locate('word',column_name)-20),40) as your_sub_string
从我的头脑中,这样的东西应该可以工作(无法测试),因为locate将返回word
中column_name
最初找到的位置,而substring将返回column_name
的子字符串,从word
中第一次出现column_name
的位置开始,减去20个字符,长度为40个字符。