IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Double espace remplacé par un simple espace


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Inscrit en
    Août 2003
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 228
    Points : 92
    Points
    92
    Par défaut Double espace remplacé par un simple espace
    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

  2. #2
    Membre régulier
    Inscrit en
    Août 2003
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 228
    Points : 92
    Points
    92
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE article
    SET designation = REPLACE(designation, '  ', ' ')
    J'ai trouvé ma solution
    Commandeur

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Solution qui ne fonctionne que si vous avez des espaces doubles, s'il y a des triples ou + ça ne fonctionne pas

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 03/04/2012, 08h36
  2. [RegEx] Remplacer une suite d'espace blanc par un seul
    Par Sayrus dans le forum Langage
    Réponses: 2
    Dernier message: 27/06/2008, 11h31
  3. [RegEx] Remplacer plusieurs espaces succesifs par un seul
    Par Marcus15 dans le forum Langage
    Réponses: 8
    Dernier message: 22/03/2007, 11h48
  4. [AJAX] Methode post remplace + par espace
    Par dgedge dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/07/2006, 09h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo