--source include/have_innodb.inc --disable_warnings drop table if exists test_innodb, test; --enable_warnings CREATE TABLE `test_innodb` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `str` VARCHAR(10) NULL DEFAULT NULL COLLATE 'latin1_general_cs', PRIMARY KEY (`id`), FULLTEXT INDEX `str` (`str`) ) COLLATE='utf8mb4_unicode_ci' ENGINE=InnoDB; INSERT INTO test_innodb(str) VALUES ('abcd'),('ABCD'); SELECT * FROM test_innodb where match(str) AGAINST ('abcd' IN BOOLEAN MODE); SELECT * FROM test_innodb where match(str) AGAINST ('ABCD' IN BOOLEAN MODE); SELECT * FROM test_innodb where match(str) AGAINST ('abcd' IN NATURAL LANGUAGE MODE); SELECT * FROM test_innodb where match(str) AGAINST ('ABCD' IN NATURAL LANGUAGE MODE); alter table test_innodb modify `str` VARCHAR(10) NULL DEFAULT NULL COLLATE 'latin1_general_ci'; SELECT * FROM test_innodb where match(str) AGAINST ('abcd' IN BOOLEAN MODE); SELECT * FROM test_innodb where match(str) AGAINST ('ABCD' IN BOOLEAN MODE); SELECT * FROM test_innodb where match(str) AGAINST ('abcd' IN NATURAL LANGUAGE MODE); SELECT * FROM test_innodb where match(str) AGAINST ('ABCD' IN NATURAL LANGUAGE MODE); alter table test_innodb modify `str` VARCHAR(10) NULL DEFAULT NULL COLLATE 'latin1_bin'; SELECT * FROM test_innodb where match(str) AGAINST ('abcd' IN BOOLEAN MODE); SELECT * FROM test_innodb where match(str) AGAINST ('ABCD' IN BOOLEAN MODE); SELECT * FROM test_innodb where match(str) AGAINST ('abcd' IN NATURAL LANGUAGE MODE); SELECT * FROM test_innodb where match(str) AGAINST ('ABCD' IN NATURAL LANGUAGE MODE); CREATE TABLE `test` ( `seq` int(11) NOT NULL AUTO_INCREMENT, `cont` text COLLATE utf8mb4_bin, PRIMARY KEY (`seq`), FULLTEXT KEY `fx_txts` (`cont`) /*!50100 WITH PARSER `ngram` */ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; insert into test (cont) values ('aBc!efg'); insert into test (cont) values ('aBc@efg'); insert into test (cont) values ('aBc#efg'); insert into test (cont) values ('aBc$efg'); insert into test (cont) values ('aBc%efg'); insert into test (cont) values ('abc^efg'); insert into test (cont) values ('abc&efg'); insert into test (cont) values ('abc*efg'); insert into test (cont) values ('abc(efg'); insert into test (cont) values ('abc)efg'); select * from test where match(cont) against ('Bc' in boolean mode); select * from test where match(cont) against ('bc' in boolean mode); select * from test where match(cont) against ('Bc' in natural language mode); select * from test where match(cont) against ('bc' in natural language mode); alter table test modify `cont` text COLLATE utf8mb4_general_ci; select * from test where match(cont) against ('Bc' in boolean mode); select * from test where match(cont) against ('bc' in boolean mode); select * from test where match(cont) against ('Bc' in natural language mode); select * from test where match(cont) against ('bc' in natural language mode); alter table test modify `cont` text COLLATE utf8mb4_bin; select * from test where match(cont) against ('Bc' in boolean mode); select * from test where match(cont) against ('bc' in boolean mode); select * from test where match(cont) against ('Bc' in natural language mode); select * from test where match(cont) against ('bc' in natural language mode); drop table test_innodb; drop table test;