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

Langage SQL Discussion :

générer deux caractères aléatoires


Sujet :

Langage SQL

  1. #1
    Membre du Club Avatar de sarah65536
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 93
    Points : 59
    Points
    59
    Par défaut générer deux caractères aléatoires
    Bonjour : Je dois lors d'une reequete, générer deux caractères aléatoires.
    ( contexte : pour permettre de générer le mot de passe d'un utilisateur )

    Voila ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        select    
            CONCAT (LEFT (client.NOM, 2),DATE_FORMAT(now(),'%d%H%i'),CHAR (ROUND((RAND()* 65),0)+65),CHAR (ROUND((RAND()* 64),0)+65))as MDP,
            [...]
        from 
             client
    La fonction round rand()), me donne un nombre compris entre 0 et 65.
    ensuite j'ajoute 65, pour obtenir la valeur décimale d'un caractère ascii comprise entre 65 et 90 ( correspond aux lettres majuscules )
    puis, la fonction char() convertit la valeur décimale en caractère.

    Voila mon problème.

    Je n'obtiens pas que des lettres majuscules. Régulièrement j'ai des caractère bizarres, tels que ^|~[`

    Qu'est ce que je ne fais pas bien ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Bonjour,

    La fonction round rand()), me donne un nombre compris entre 0 et 65.
    ensuite j'ajoute 65, pour obtenir la valeur décimale d'un caractère ascii comprise entre 65 et 90 ( correspond aux lettres majuscules )
    Si vous avez un nombre compris entre 0 et 65, auquel vous ajoutez 65, vous aurez un nombre compris entre 65 et 130...
    Comme ceci peut être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CHAR (ROUND((RAND()* 25),0)+65)

  3. #3
    Membre du Club Avatar de sarah65536
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 93
    Points : 59
    Points
    59
    Par défaut
    Oups l'erreur de blonde !!

    En effet, c'est évident.

    J'ai un peu honte la

    Merci beaucoup pour votre aide !

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

Discussions similaires

  1. générer deux variables aléatoires sous contrainte
    Par emilie89 dans le forum Probabilités
    Réponses: 0
    Dernier message: 23/08/2011, 16h36
  2. générer un caractère aléatoirement
    Par shazad dans le forum Débuter
    Réponses: 38
    Dernier message: 04/12/2008, 19h19
  3. Besoin de générer une chaine aléatoire
    Par warsky dans le forum Langage
    Réponses: 7
    Dernier message: 01/12/2005, 19h34
  4. générer un nombre aléatoire gaussien
    Par kayari dans le forum Probabilités
    Réponses: 9
    Dernier message: 24/05/2005, 23h57
  5. Générer un nombre aléatoire entre 0 et 1 (INCLUS !!!)
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 22/08/2002, 16h30

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