Bonjour,
Je recherche une requête sql qui supprime/remplace les doubles espaces dans du texte par un simple espace.
Merci de votre aide
Bonjour,
Je recherche une requête sql qui supprime/remplace les doubles espaces dans du texte par un simple espace.
Merci de votre aide
Commandeur
J'ai trouvé ma solution
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 UPDATE article SET designation = REPLACE(designation, ' ', ' ')
Commandeur
Solution qui ne fonctionne que si vous avez des espaces doubles, s'il y a des triples ou + ça ne fonctionne pas
Salut à tous.
Avec une fonction, cela devrait répondre au problème de Commandeur.
@+
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87 -------------- SET AUTOCOMMIT = 0 -------------- -------------- START TRANSACTION -------------- -------------- DROP DATABASE IF EXISTS `base` -------------- -------------- CREATE DATABASE `base` DEFAULT CHARACTER SET `latin1` DEFAULT COLLATE `latin1_general_ci` -------------- -------------- DROP TABLE IF EXISTS `test` -------------- -------------- CREATE TABLE `test` ( `id` integer unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY, `val` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci` ROW_FORMAT=COMPRESSED -------------- -------------- insert into `test` (`val`) values (' voici un texte avec des espaces en trop entre les mots. '), (' Ceux-ci seront remplacés par un unique espace de séparation. '), (' Ils seront aussi supprimés avant et après le texte. ') -------------- -------------- select concat('-->',val, '<--') as val from test -------------- +---------------------------------------------------------------------------------------------------------------------------------+ | val | +---------------------------------------------------------------------------------------------------------------------------------+ | --> voici un texte avec des espaces en trop entre les mots. <-- | | --> Ceux-ci seront remplacés par un unique espace de séparation. <-- | | --> Ils seront aussi supprimés avant et après le texte. <-- | +---------------------------------------------------------------------------------------------------------------------------------+ -------------- DROP FUNCTION IF EXISTS `multi_space` -------------- -------------- CREATE FUNCTION `multi_space` ( string VARCHAR(255) ) RETURNS VARCHAR(255) DETERMINISTIC BEGIN WHILE instr(string, ' ') > 0 DO SET string = replace(string, ' ', ' '); END WHILE; RETURN trim(string); END -------------- -------------- select concat('-->',multi_space(val),'<--') as val from test -------------- +--------------------------------------------------------------------+ | val | +--------------------------------------------------------------------+ | -->voici un texte avec des espaces en trop entre les mots.<-- | | -->Ceux-ci seront remplacés par un unique espace de séparation.<-- | | -->Ils seront aussi supprimés avant et après le texte.<-- | +--------------------------------------------------------------------+ -------------- COMMIT -------------- -------------- SET AUTOCOMMIT = 1 -------------- Appuyez sur une touche pour continuer...
Si vous êtes de mon aide, vous pouvez cliquer sur .
Mon site : http://www.jcz.fr
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