我打算在我的内容网站上设计一个搜索网页脚本。
例如,这是mysql DB中的文本内容。
美国国务院一位高级官员说,亚努科维奇已离开基辅 乌克兰第二大城市哈尔科夫之后举行会议 星期五的和平协议。这位官员以条件发言 不愿透露姓名,曾与乌克兰外交部长通电话。
我搜索“哈尔科夫” 所以我得到这个结果:
...... 哈尔科夫的最大城市......之后的会议
这样做的最佳方法是什么?
我试过了:
<?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是项目表的一个字段。
答案 0 :(得分:1)
您可以使用以下查询:
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
是您需要的字数。