J'ai une table MySQL (test) avec un encodage charset utf-8. Il y a trois entrées, deux entrées avec des caractères normaux et un autre nom avec des caractères accentués.
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, 'áááá');
Si j'exécute la requête de sélection suivante, elle renvoie les 3 entrées.
Résultat réel:-
select * from test where name like '%aa%';
id | name
----|----
1 | aaaa
2 | AAAA
3 | áááá
Au lieu de cela, ce devrait être le retour de la dernière entrée avec id=3.
Je ne veux pas utiliser 'BINARY' ou 'COLLATE utf8_bin' parce que cela renvoie uniquement une recherche sensible à la casse.
J'ai besoin d'une recherche normale avec une chaîne de caractères comme requête, par exemple : -
Résultat attendu : -
select * from test where name like '%aa%';
id | name
---|-----
1 | aaaa
2 | AAAA