• =?UTF-8?B?W0hTXSBNeVNRTDogdmFsZXVyIHBhciBkw6lmYXV0?=

    From Olivier@21:1/5 to All on Mon May 23 18:30:01 2022
    Hello,

    Voici une question qui n'a qu'un rapport indirect avec Debian (même si
    la mise en oeuvre sera faite sur notre OS préféré).

    Comment avec MySQL, retourner une valeur par défaut, si aucun rang ne correspond, ou un rang correspond mais que la valeur qu'il contient
    est NULL ?

    Exemple:
    SELECT IFNULL("ABC", macolonne2) AS foo WHERE macolonne1=123

    Si aucun enregistrement avec macolonne1=123 n'existe, retourner "ABC"
    Si un enregistrement avec macolonne1=123 existe mais que la valeur de macolonne2 est NULL, retourner "ABC"
    Si un enregistrement avec macolonne1=123 n'existe et que la valeur de macolonne2 n'est pas NULL, retourner la valeur de macolonne2

    Slts

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jean-Michel OLTRA@21:1/5 to All on Mon May 23 23:00:01 2022
    Bonjour,


    Le lundi 23 mai 2022, Olivier a écrit...


    Exemple:
    SELECT IFNULL("ABC", macolonne2) AS foo WHERE macolonne1=123

    Peut-être :
    select coalesce((select macolonne2 from matable where macolonne1=123),
    'ABC');

    --
    jm

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Olivier@21:1/5 to All on Tue May 24 11:20:01 2022
    Merci à tous pour vos réponses !

    La réponse de Dethegeek fonctionne parfaitement.
    Au passage, j'ignorais que MySQL était si susceptible sur l'absence de parenthèses.

    Le lun. 23 mai 2022 à 22:57, Jean-Michel OLTRA
    <jeanmichel@shoponyou.com> a écrit :


    Bonjour,


    Le lundi 23 mai 2022, Olivier a écrit...


    Exemple:
    SELECT IFNULL("ABC", macolonne2) AS foo WHERE macolonne1=123

    Peut-être :
    select coalesce((select macolonne2 from matable where macolonne1=123),
    'ABC');

    --
    jm


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Olivier@21:1/5 to All on Wed May 25 09:00:01 2022
    Voici la réponse de Dethegeek:

    CREATE TABLE `ma_table` (
    `id` INT(10) NOT NULL,
    `macolonne1` INT(10) NOT NULL,
    `macolonne2` VARCHAR(50) NULL DEFAULT NULL
    PRIMARY KEY (`id`)
    );

    SELECT
    if (
    (
    SELECT
    COUNT(*)
    FROM
    ma_table
    WHERE
    macolonne1 = 123
    AND NOT ISNULL(macolonne2)
    ) = 0,
    'ABC',
    (
    select
    macolonne2
    from
    ma_table
    where
    macolonne1 = 123
    and not isnull(macolonne2)
    )
    )


    Le mer. 25 mai 2022 à 08:20, christian.quentin <christian.quentin@transparence-c.com> a écrit :

    Bonjour Olivier,

    Je n'ai pas vu la réponse de Dethegeek. Un message privé peut-être ? Pourrais-tu la publier dans ce cas ?
    Ce serait cool.

    Merci
    Christian

    Envoyé depuis mon smartphone Linux Android



    -------- Message d'origine --------
    De : Olivier <oza.4h07@gmail.com>
    Date : 24/05/2022 11:13 (GMT+01:00)
    À : ML Debian User French <debian-user-french@lists.debian.org>
    Objet : Re: [HS] MySQL: valeur par défaut [RESOLU]

    Merci à tous pour vos réponses !

    La réponse de Dethegeek fonctionne parfaitement.
    Au passage, j'ignorais que MySQL était si susceptible sur l'absence de parenthèses.

    Le lun. 23 mai 2022 à 22:57, Jean-Michel OLTRA
    <jeanmichel@shoponyou.com> a écrit :


    Bonjour,


    Le lundi 23 mai 2022, Olivier a écrit...


    Exemple:
    SELECT IFNULL("ABC", macolonne2) AS foo WHERE macolonne1=123

    Peut-être :
    select coalesce((select macolonne2 from matable where macolonne1=123),
    'ABC');

    --
    jm


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)