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 :

Soustraction et base de donnée


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Par défaut Soustraction et base de donnée
    Bonjour

    j'ai un probleme avec ma base de donnée:
    J’ai une table avec 2 colonnes, quand je lance la requête suivante
    SELECT colonne1, colonne2 FROM Ma_table ORDER BY (colonne1-colonne2) DESC LIMIT 10
    Le résultat affiché n’est pas le bon
    Au lieu d’afficher les lignes de la plus grande valeur à la plus petite
    Ça m’affiche les lignes en désordre pas dans l’ordre.

    PS : Si je change l’opération de soustraction par l'addition le résultat est le bon.

    Ce problème est survenu après un changement de serveur récemment.
    Version de Mysql : 4.1.12

  2. #2
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut Re: Soustraction et base de donnée
    C'est quoi le type de tes colonnes? Et quand tu mets le (colonne1-colonne2) dans ton SELECT, ça affiche quoi?

    Le problème peut venir du fait que tu utilises des entiers signés (ou que tu as une conversion en entiers signés), dans ce cas, au lieu d'avoir des valeurs négatives, tu aurais de très grandes valeurs (dépassement de capacité), ce qui expliquerait l'aspect désordonné du résultat.
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Par défaut
    `colonne1` smallint(5) unsigned NOT NULL default '0',
    `colonne1` smallint(5) unsigned NOT NULL default '0',

    ça m'affiche -1 comme résultat si je mets DESC et 0 si je mets ASC

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY CAST (colonne1-colonne2 AS SIGNED) DESC
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY CAST (colonne1 AS SIGNED) - CAST(colonne2 AS SIGNED) DESC

  5. #5
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Par défaut
    Citation Envoyé par Sakuragi007
    `colonne1` smallint(5) unsigned NOT NULL default '0',
    `colonne1` smallint(5) unsigned NOT NULL default '0'
    Ben voilà ! C'est ce que je pensais ! (problème d'entiers signés/non signés)

    Comme l'a dit Médiat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CAST(colonne1 AS SIGNED) - CAST(colonne2 AS SIGNED)
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Par défaut
    ça marche!
    Merci à vous deux

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

Discussions similaires

  1. Problème Base de données et CRecordSet
    Par LE CHAKAL dans le forum MFC
    Réponses: 3
    Dernier message: 20/08/2002, 11h59
  2. connexion base de donné
    Par saidi dans le forum MFC
    Réponses: 3
    Dernier message: 07/08/2002, 22h22
  3. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 16h16
  4. Bases de données
    Par dev dans le forum C++Builder
    Réponses: 4
    Dernier message: 01/07/2002, 22h55
  5. associer une base de données(access) a un dbgrid
    Par ange1708 dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2002, 12h18

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