Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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
删除索引后恢复mysql区分大小写的全文搜索_Mysql_Database - Fatal编程技术网

删除索引后恢复mysql区分大小写的全文搜索

删除索引后恢复mysql区分大小写的全文搜索,mysql,database,Mysql,Database,我有一个数据库,在那里我删除了一列的全文索引。重新添加后,我无法恢复原来的行为 这里有一个例子 我创建表格并将字符集设置为utf8\u bin。我还添加了全文索引: 创建表testtable `日期`时间戳默认当前时间戳不为空, `Headline`VARCHAR256字符集utf8不为空, `Description`文本字符集utf8不为空, 主键标题` ; ALTER TABLE testtable转换为字符集utf8 COLLATE utf8\u bin; ALTER TABLE test

我有一个数据库,在那里我删除了一列的全文索引。重新添加后,我无法恢复原来的行为

这里有一个例子

我创建表格并将字符集设置为utf8\u bin。我还添加了全文索引:

创建表testtable `日期`时间戳默认当前时间戳不为空, `Headline`VARCHAR256字符集utf8不为空, `Description`文本字符集utf8不为空, 主键标题` ; ALTER TABLE testtable转换为字符集utf8 COLLATE utf8\u bin; ALTER TABLE testtable添加全文标题; 我添加了一些虚拟数据:

在测试表标题中插入“苹果从树上掉下来的故事描述值”,; 在测试表标题中插入“苹果做了什么”之类的描述值,; 现在如果我搜索:

从testtable中选择'Date','Headline',其中以布尔模式将Headline与'apple'匹配; 及

从testtable中选择'Date','Headline',其中以布尔模式将Headline与'Apple'匹配; 很好,这很有效,这就是我想要的结果

现在,让我们删除索引,重新添加它,然后重试:

将索引标题放在测试表上; ALTER TABLE testtable转换为字符集utf8 COLLATE utf8\u bin;我也试过了,没什么不同 ALTER TABLE testtable添加全文标题; 从testtable中选择'Date','Headline',其中以布尔模式将Headline与'Apple'匹配; 返回null作为响应,但搜索apple将返回两行

所以问题是,这里发生了什么,更重要的是,我如何让表格恢复到原来的样子:一个区分大小写的全文索引,为苹果和苹果分别提供结果

使用Mysql 5.7和InnoDB引擎

谢谢你的帮助

默认情况下,搜索以不区分大小写的方式执行。到 执行区分大小写的全文搜索,使用二进制排序规则 索引列。例如,使用拉丁字母1的列 可以为的字符集分配一个latin1_bin排序规则以使其 全文搜索区分大小写


是的,这指出我需要一个区分大小写的排序规则,我将使用它。无论是在创建索引时还是在删除索引后。我仍然不确定为什么会发生这种情况,数据库没有被触动,但在列级别重新分配字符集和排序似乎可以解决这个问题:ALTER TABLE testtable MODIFY HEADLE VARCHAR255字符集utf8 COLLATE utf8\u bin;
'2020-02-19 17:16:05', 'the story of how an apple fell from the tree'
'2020-02-19 17:18:38', 'Apple did something blah'