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 :

Aucune fonction ou astuce pour générer un acronyme d'une chaine ?


Sujet :

Requêtes MySQL

  1. #1
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 392
    Points : 863
    Points
    863
    Par défaut Aucune fonction ou astuce pour générer un acronyme d'une chaine ?
    bonjour,

    j'ai un champ string(32) dont je voudrais qu'il contienne l'acronyme d'un autre champs string(255).

    par exemple :
    libelle(255)="il fait beau dehors"
    acro(32)="ifbd"

    J'ai cherché dans les fonctions String de mysql mais apparemment il n'y a pas de solution possible de faire un UPDATE pour que ce soit automatique.
    vous me le confirmez ?
    Je vais envisager un simple script php pour faire l'opération...

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 222
    Points
    8 222
    Billets dans le blog
    17
    Par défaut
    select all regexp_replace('il fait beau dehors', '\\B.| ', ''); -- ifbd
    Sans doute à améliorer
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 392
    Points : 863
    Points
    863
    Par défaut
    merci pour la suggestion (valide mysql> 8.0.4).
    j'étais en train de chercher autrement en remplaçant par un espace tout ce qui n'est pas majuscule...en vain ou en gardant que les caractères succédant par un espace...

  4. #4
    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 910
    Points
    38 910
    Billets dans le blog
    9
    Par défaut
    Une remarque : un acronyme est un sigle qui se prononce comme un nom, par exemple ONU est un acronyme, alors que SCNF n'en est pas un.
    Du coup, votre colonne ne devrait pas se nommer ACRO mais SIGLE

  5. #5
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 222
    Points
    8 222
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par clavier12AZQSWX Voir le message
    merci pour la suggestion (valide mysql> 8.0.4).
    j'étais en train de chercher autrement en remplaçant par un espace tout ce qui n'est pas majuscule...en vain ou en gardant que les caractères succédant par un espace...
    Pas compris. Donne des exemples d'entrées / sorties attendues.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  6. #6
    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 910
    Points
    38 910
    Billets dans le blog
    9
    Par défaut
    Comment gérez vous les articles, les élisions (apostrophes), les traits d'union, les prépositions, les pronoms et autres cas particuliers...

    Par exemple, que devient la chaîne de caractères suivante :
    il s'abonne pour un mois : ISAPUM, ISPUM, IAPUM, IAM ou encore AM selon qu'on conserve ou pas les articles, les prépositions...

    À mon avis, il faut passer par une UDF pour pouvoir gérer tous ces cas particuliers, une simple fonction SQL ne suffira pas.

  7. #7
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 392
    Points : 863
    Points
    863
    Par défaut
    bonjour,

    mon cas et besoin est très simple, c'est juste pour avoir un acronyme d'un libellé.
    rien à avoir avec une url, le référencement ou autre.

    que devient la chaîne de caractères suivante :
    il s'abonne pour un mois : ISAPUM, ISPUM, IAPUM, IAM
    idéalement :

    I S P U M (on garde que les lettres avant un espace)

    sinon

    I A P U M (on garde que les lettres des expressions de plus de 2caractères avant un espace) .


    Vu que ça n'existe pas en mysql (pas de Capitalize non plus pour macher le travail), je vais faire un post-traitement en php après un insert/update.

Discussions similaires

  1. Réponses: 7
    Dernier message: 06/11/2022, 08h22
  2. [Débutant] Astuces pour générer des Grafcet
    Par Sieur_Blabla dans le forum Langages
    Réponses: 5
    Dernier message: 07/01/2014, 17h55
  3. Utilitaire pour générer la documentation d'une BD SQL
    Par carjo dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 04/05/2006, 18h41

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