Bonjour,
l'opérateur like ne tient pas compte des accents :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| show create table toto;
+-------+----------------------------------------------------------------------------+
| Table | Create Table |
+-------+----------------------------------------------------------------------------+
| toto | CREATE TABLE `toto` (
`toto` text
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+-------+----------------------------------------------------------------------------+
select * from toto where toto like '%e%';
+--------+
| toto |
+--------+
| azerty |
| azérty |
+--------+ |
Quand tu dit :
- ligne3 : le but est que l'autocomplete ne sorte que les villes commençant par l'entrée (si j'entre par exemple 'saint' il renvoie 'Saâne Saint Just') > ça marche avec les 'saint' mais l'autocomplete ne renvoie plus aucune entrée à 1 mot
alors si je demande 'saint' la ville 'Saâne Saint Just' ne doit PAS être remonté par la requête ? C'est déjà le cas non ?
dans ta requête inutile de mettre :
car c'est dans le paramètre que tu donnera que tu définira le placement du '%' comme dans l'exemple d'ayeur.
Puis :
nom_ville LIKE REPLACE(:q2, 'st', 'saint')
tu remplace les caractère 'st' par 'saint' mais tu ne rajoute pas le caractère '%' donc il faut que le nom de la ville soit exactement équivalent à :q2 avec les caractère 'st' remplacé, je pense que :
nom_ville LIKE concat(REPLACE(:q2, 'st', 'saint'), '%')
Partager