Php MySQL-部分搜索

Php MySQL-部分搜索,php,mysql,sql-like,Php,Mysql,Sql Like,任何人都知道如何搜索数据库中的部分单词 比如说- 我的弦是二十一世纪福克斯 数据库列值为21世纪福克斯 如何使用类似MySQL或LOCATE或任何其他查询获得结果 我想匹配的是“st Century Fox”一个简单的解决方案是将字符串拆分为字数,然后使用或和等进行搜索。在这种情况下 $keyword = 'Twenty-first Century Fox'; $keywords = explode($keyword,' '); $keySearch = array(); foreach (

任何人都知道如何搜索数据库中的部分单词

比如说-

我的弦是二十一世纪福克斯

数据库列值为21世纪福克斯

如何使用类似MySQL或LOCATE或任何其他查询获得结果


我想匹配的是“st Century Fox”

一个简单的解决方案是将字符串拆分为字数,然后使用
等进行搜索。在这种情况下

$keyword  = 'Twenty-first Century Fox';
$keywords = explode($keyword,' ');

$keySearch = array();
foreach ($keywords as $keyword){
    $keySearch[] = 'column LIKE \'%'.$keyword.'%\'';
}

$query = 'SELECT * FROM tableName WHERE '.implode(' OR ',$keySearch);

您可能应该调查
全文
搜索;它的设计目的是在21世纪福克斯的
21世纪福克斯的
。它包括创建一个专用索引,然后使用
MATCH()
谓词进行搜索


但要理解
21th
21th
是等价的,这是一项更复杂的任务。这涉及同义词列表或其他知识来源。如果你必须这样做,你应该调查斯芬克斯或卢塞恩。

使用Soundex函数campare这两个字符串

<?php
$str = "Twenty-first Century Fox";
$str1 = "21st Century Fox";
echo soundex($str);
echo soundex($str1);
?>


其中列“%二十一%”或列“%世纪%”或列“%福克斯%”应进行全文搜索:。我使用全文搜索我的所有项目,这些项目需要创建与您需要的搜索类似的搜索。