Publicité
+ Répondre à la discussion
Page 2 sur 2 PremièrePremière 12
Affichage des résultats 21 à 26 sur 26
  1. #21
    Nouveau Membre du Club
    Inscrit en
    août 2005
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 120
    Points : 30
    Points
    30

    Par défaut

    @CinePhil
    ta requete ne marche pas

    Code :
    1
    2
    3
    4
    5
    6
    SELECT b,  gridb,
    	CASE
    		WHEN b = gridb THEN b
    		ELSE '0000'
    	END AS resultat_ET
    FROM GRILLE

    @Fred_34
    cela marche tres bien :
    Code :
    SELECT a,grida,CONV(CONV(a,2,10) & CONV(grida,2,10),10,2)

    Merci pour votre aide

  2. #22
    Modérateur
    Avatar de CinePhil
    Homme Profil pro Philippe Leménager
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    13 713
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Leménager
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 13 713
    Points : 25 575
    Points
    25 575

    Par défaut

    Citation Envoyé par enibris Voir le message
    @CinePhil
    ta requete ne marche pas
    Je viens de la tester avec le script de création et e remplissage de table de Fred_34 et ma requête fonctionne, en cochant l'option "afficher le contenu des blobs" dans phpMyAdmin après avoir exécuté la requête.

    Toujours bien sûr en supposant que ce que tu cherches à faire est équivalent à un =, ce que tu n'as pas confirmé ni infirmé jusque là !

    On peut améliorer ma requête pour afficher la valeur réelle :
    Code :
    1
    2
    3
    4
    5
    6
    7
    SELECT CONV( b, 2, 2 ) AS b,
    	CONV( gridb, 2, 2 ) AS gridb,
    	CASE
    		WHEN b = gridb THEN CONV( b, 2, 2 )
    		ELSE CONV( '0000', 2, 2 )
    	END AS resultat_ET
    FROM grille
    Mais alors, pourquoi avoir stocké ces valeurs dans un tinyblob ?

    Code :
    1
    2
    3
    4
    5
    6
    SELECT b,  gridb,
    	CASE
    		WHEN b = gridb THEN b
    		ELSE '0000'
    	END AS resultat_ET
    FROM GRILLE
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #23
    Nouveau Membre du Club
    Inscrit en
    août 2005
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 120
    Points : 30
    Points
    30

    Par défaut

    @CinePhil
    je veux faire un ET
    1 & 1 = 1
    1 & 0 = 0

    Code :
    1
    2
    3
    4
    5
    6
     
    10100010111000010001 
    & 
    00100001011101110000
    =
    00100000011000010000

    tinyblob , franchement je ne sais plus, un char marche aussi bien


    Merci quand meme

  4. #24
    Expert Confirmé Avatar de ericd69
    Homme Profil pro Eric Dureuil
    Développeur informatique
    Inscrit en
    avril 2011
    Messages
    1 849
    Détails du profil
    Informations personnelles :
    Nom : Homme Eric Dureuil
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : avril 2011
    Messages : 1 849
    Points : 3 179
    Points
    3 179

    Par défaut

    Code :
    SELECT conv('101',2,2)&conv('101',2,2),conv('100',2,2)&conv('101',2,2)
    le résultat est:
    101,100
    en binaire directement chez moi... ce qui est cohérent...

    mon sql_mode est vide donc j'ai les paramétrages par défaut... et je teste dans heidisql pas dans phpmyadmin qui peut avoir du mal sur l'interprétation des typages entiers et leur affichage
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  5. #25
    Membre expérimenté
    Homme Profil pro Frédéric
    Inscrit en
    juin 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Nom : Homme Frédéric
    Localisation : France

    Informations forums :
    Inscription : juin 2011
    Messages : 442
    Points : 576
    Points
    576

    Par défaut

    Citation Envoyé par ericd69 Voir le message
    Code :
    SELECT conv('101',2,2)&conv('101',2,2),conv('100',2,2)&conv('101',2,2)
    le résultat est:

    en binaire directement chez moi... ce qui est cohérent...

    mon sql_mode est vide donc j'ai les paramétrages par défaut... et je teste dans heidisql pas dans phpmyadmin qui peut avoir du mal sur l'interprétation des typages entiers et leur affichage
    J'obtiens la même chose, mais :
    Code :
    SELECT conv('1000',2,2)&conv('1010',2,2)
    -> 992

  6. #26
    Expert Confirmé Avatar de ericd69
    Homme Profil pro Eric Dureuil
    Développeur informatique
    Inscrit en
    avril 2011
    Messages
    1 849
    Détails du profil
    Informations personnelles :
    Nom : Homme Eric Dureuil
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : avril 2011
    Messages : 1 849
    Points : 3 179
    Points
    3 179

    Par défaut

    je reproduis aussi ce code avec ça regarde:
    Code :
    SELECT conv('1010',2,2)&conv('1010',2,2),conv('1000',2,2)&conv('1010',2,2);
    ça donne:
    1010,992
    si tu passes par la base 10, ça marche tout le temps...
    Code :
    SELECT conv('1010',2,2)&conv('1010',2,10),conv('1000',2,10)&conv('1010',2,10);
    donc y a une obligation de différence de bases dans la fonction qui n'est pas documentée... un bug pour la base 2 vers elle-même pour certaines valeurs et pas d'autres...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •