sql获取x包含字符串中每个单词的所有行

时间:2018-10-17 12:20:17

标签: php mysql sql

这是我当前代码的一个粗略示例。为了简单起见,我没有包含参数化查询:

private int _secondProperty;
public int SecondProperty
{
   get { return _secondProperty; }
   set { _secondProperty = value; OnPropertyChanged("SecondProperty"); }
}

表:测试:

if(isset($_GET["q"])) {
    $query = "%" . trim($_GET["q"]) . "%";
    $search = $pdo->query("
        SELECT * 
        FROM test 
        WHERE title LIKE {$query} AND keywords LIKE {$query}
    ");
    var_dump($search);
}

我一直在尝试通过使用基本的| title | keywords | | this, is a "test" | this is a test | 在我的网站内创建一个简单的搜索系统。大多数时候,我一直都获得积极的结果-但是,我遇到了一个问题,经过几天的研究,我似乎无法解决。

如果我输入类似SQL的查询,则会得到一行返回相关结果。但是当我查询"this is a test"时,它返回无结果

如果查询有_any__错字,它也不起作用。 (我一直在搜索levenshtein,但 MySQL 中没有答案。)

感谢所有帮助, 干杯。

1 个答案:

答案 0 :(得分:4)

首先,您需要为alter的{​​{1}}表

FULLTEXT

然后使用ALTER TABLE test ADD FULLTEXT(title); ALTER TABLE test ADD FULLTEXT(keywords);

执行此查询
MATCH

我已附上结果的屏幕截图

enter image description here