Bonjour a tous,
je cherche un moyen de remplacer les caractères
accentuer avec des caractères non accentuer
en pure sql,
si quelqu'un connait une solution, merci
Bonjour a tous,
je cherche un moyen de remplacer les caractères
accentuer avec des caractères non accentuer
en pure sql,
si quelqu'un connait une solution, merci
salut,
je ne sais pas si c'est possible à part en remplaçant caractère par caractère![]()
Saluton,Je ne vois pas comment sauf à emboîter des REPLACE genre
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part SET colonne = REPLACE(REPLACE(REPLACE(colonne, 'é','é'),'è','e'),'ê','e')
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Bonjour,
Je vous recommande d'aller jeter un œil dans l'excellent tutoriel d'Antoun : http://antoun.developpez.com/mysql5/jeux-collations/.
En convertissant en UTF8 (voir page 9), ça devrait passer...
ced
[EDIT] : ça dépend quand même du jeu de caractère utilisé au départ...
Rédacteur / Modérateur SGBD et R
Mes tutoriels et la FAQ MySQL
----------------------------------------------------
Pensez aux balises code et au tag![]()
Une réponse vous a plu ? N'hésitez pas à y mettre un![]()
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
Merci a tous pour vos réponses,
j'ai trouvé une solution en écrivant une fonction utilisateur,
en faite j'ai écrit la fonction translate de Oracle/PostgreSql
qui n'existe pas sous Mysql,
j'en est fait un billet sur mon blog dans lequel je livre la solution.
http://inspirationgeek.com/blog/inde...ate-dans-Mysql
Exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 # Modification du caractère de fin d instruction DELIMITER | # On fait passer le jeux de caractères sur utf8 sinon CHAR_LENGTH('â') = 2 au lieu de 1 SET NAMES utf8; # Création de la function translate CREATE FUNCTION translate(V_string VARCHAR(255), V_from VARCHAR(255), V_to VARCHAR(255)) RETURNS VARCHAR(255) DETERMINISTIC BEGIN DECLARE i INT; SET i = CHAR_LENGTH(V_from); WHILE i > 0 DO SET V_string = REPLACE(V_string, SUBSTR(V_from, i, 1), SUBSTR(V_to, i, 1)); SET i = i - 1; END WHILE; RETURN V_string; END; | # Très important, Remise du delimiter standard DELIMITER ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 mysql> SELECT translate('très accentués', 'éèê', 'eee'); +---------------------------------------------+ | translate('très accentués', 'éèê', 'eee') | +---------------------------------------------+ | tres accentues | +---------------------------------------------+ 1 row IN SET (0.00 sec)
Partager