У меня есть таблица MySQL (test) с кодировкой кодировки utf-8. Есть три записи, две записи с нормальными символами и другое имя с символами акцента.
CREATE TABLE test (
id Integer,
name VARCHAR(50),
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
INSERT INTO `test` (`id`, `name`) VALUES (1, 'aaaa');
INSERT INTO `test` (`id`, `name`) VALUES (2, 'AAAA');
INSERT INTO `test` (`id`, `name`) VALUES (3, 'áááá');
Если я запустил следующий запрос select, он вернет все 3 записи
Фактический результат: -
select * from test where name like '%aa%';
id | name
----|----
1 | aaaa
2 | AAAA
3 | áááá
Вместо этого должна быть возвращена последняя запись с id = 3.
Я не хочу использовать "BINARY" или "COLLATE utf8_bin", потому что он возвращает только поиск с учетом регистра.
Мне нужен нормальный поиск с запросом строки как, например: -
Ожидаемый результат: -
select * from test where name like '%aa%';
id | name
---|-----
1 | aaaa
2 | AAAA