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')
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...
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)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager