我将在我的内容网站上设计一个搜索网页脚本。
例如,这是mysql数据库中的文本内容。
美国国务院一名高级官员说,亚努科维奇已经离开基辅
为乌克兰第二大城市哈尔科夫举行会议
星期五的和平协议。这位官员说,条件是
匿名者,曾与乌克兰外交部长通电话。
我搜索“哈尔科夫”
所以我得到这个结果:
…哈尔科夫最大的城市在。。。
最好的方法是什么?
我试过这个:

<?php
         $_string="Kharkiv";
         $db = JFactory::getDBO();
        $query = "SELECT CONCAT(REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTR(introtext,1,INSTR(introtext, ".$_string.") - 1)),' ',4)),
                             SUBSTRING_INDEX(SUBSTR(introtext,INSTR(introtext, ".$_string.")),' ',4))
       FROM #__items
       WHERE introtext LIKE '%".$_string."%'
        ";

        $db->setQuery($query);
        $rows = $db->loadObjectList();
         foreach ($rows as $item) {
          echo $item->introtext;
                }
           ?>

introtext是item表的一个字段。

最佳答案

您可以使用以下查询:

SELECT CONCAT(
           REVERSE(SUBSTRING_INDEX(
                REVERSE(SUBSTR(
                    text,
                    1,
                    INSTR(text, 'Kharkiv') - 1
                )),
                ' ',
                4
           )),
           SUBSTRING_INDEX(
                SUBSTR(
                    text,
                    INSTR(text, 'Kharkiv')
                ),
                ' ',
                4
            )
        )
FROM table_name
WHERE text LIKE '%Kharkiv%'

其中4是您需要的字数。

09-12 04:17