Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL全文搜索忽略数字_Php_Mysql_Full Text Search_Evaluation - Fatal编程技术网

Php MySQL全文搜索忽略数字

Php MySQL全文搜索忽略数字,php,mysql,full-text-search,evaluation,Php,Mysql,Full Text Search,Evaluation,我有一个mysql全文搜索,问题是这个查询似乎偶尔会忽略数字,所以数据库中包含了像这样的视频游戏的名称 帝国时代帝国时代2帝国时代3 现在,当使用类似于帝国时代2的字符串执行全文搜索时,它有时会返回帝国时代或帝国时代3作为第一个匹配 基本上,我如何确保搜索字符串中的数字在查询中具有高优先级/或以后评估返回的匹配项时具有高优先级?您应该使用以下语法:从表1中选择*,其中列1类似于“帝国时代2” 就我而言: mysql> Select * From table1; +------------

我有一个mysql全文搜索,问题是这个查询似乎偶尔会忽略数字,所以数据库中包含了像这样的视频游戏的名称

帝国时代
帝国时代2
帝国时代3

现在,当使用类似于帝国时代2的字符串执行全文搜索时,它有时会返回帝国时代或帝国时代3作为第一个匹配


基本上,我如何确保搜索字符串中的数字在查询中具有高优先级/或以后评估返回的匹配项时具有高优先级?

您应该使用以下语法:
从表1中选择*,其中列1类似于“帝国时代2”

就我而言:

mysql> Select * From table1;
 +----------------------+
 |column1               |
 +----------------------+
 |Age Of Empires        |
 |Age Of Empires 2      |
 |Age Of Empires 3      |
 +----------------------+

 mysql> Select * From table1 Where column1 Like 'Age Of Empires 2';
 +----------------------+
 |column1               |
 +----------------------+
 |Age Of Empires 2      |
 +----------------------+

你确定“2”不只是太短而无法计数吗?你的意思是全文搜索不包括在内吗?@EugenRieck可能是对的。我认为全文搜索的默认设置每个项目至少有3个字符。你应该检查mysql设置。只是检查了设置,如你所说的最少3个字母,将无法更改。。。难道没有其他方法可以让数字变得有意义吗?就MySQL而言,数字没有什么特别的。因此,如果您不使用单个字母为单词编制索引,则不会为单词“2”或“3”编制索引。您可能想考虑另一列“生成”或“版本”,并做一些准备…这对《帝国时代2》和《魔兽争霸4》也有帮助。这是错误的:(如果你知道确切的值,使用=,而不是像。它根本不询问这个问题。正如@jkavalik所说,这根本不能回答这个问题。