【发布时间】:2014-01-10 11:41:16
【问题描述】:
我正在尝试编写一个脚本,该脚本使用用户提供的每个查询词在数据库中进行搜索。
例如查询可以是: “耐克黑帽”
在我的脚本中,字符串被 PHP 用空格分割,然后以这种形式传递给 SQL 查询:
foreach($query as $word)
{
$searchQuery[] = " title ILIKE '%".$word."%' ESCAPE '|' ";
}
问题是这些查询能够找到像 semi*Black* 或 *Hat*ed 这样的词。我不希望这样,所以我所做的是添加空格:
WHERE title ILIKE '% ".$word." %' ESCAPE '|'
现在的问题是,如果用户查询的是“Nike red shorts”,脚本将找不到任何内容,因为“Nike”在数据库中之前没有空格。我不知道如何解决它 - 只能通过整个单词找到,包括不以空格开头或结尾的单词。
【问题讨论】:
标签: php sql postgresql search-engine