我将在我的内容网站上设计一个搜索网页脚本。
例如,这是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
是您需要的字数。