vendredi 8 janvier 2021

Conditioning the execution of mySQL queries to the result of another mySQL query (mySQL Syntax Error)

I have to execute a mySQL query according to the result of this one :

(SELECT EXISTS(SELECT type_requete FROM requete_groupe WHERE id_requete='1'))

It returns 1 if the line exists and 0 otherwise. I need to execute a query for each of these two cases, for this I used several methods :

    SELECT @mycheck := (SELECT EXISTS(SELECT type_requete FROM requete_groupe WHERE id_requete='1')),
CASE 
    WHEN @mycheck = '1' THEN (
    UPDATE requete 
    INNER JOIN requete_groupe ON requete.id = requete_groupe.id 
    SET requete.requete='example'
    WHERE requete_groupe.type_requete='2');
    WHEN @mycheck = '0' THEN (
    INSERT INTO requete (requete)
    VALUES ('example');
    );
END CASE;

or

IF(SELECT EXISTS(SELECT type_requete FROM requete_groupe WHERE id_requete='1')) = 1
THEN
(UPDATE requete INNER JOIN requete_groupe ON requete.id = requete_groupe.id SET requete.requete='example' WHERE requete_groupe.type_requete='2')
ELSE
(INSERT INTO requete (requete) VALUES ('example'))
END IF

But each time there is a mySQL syntax error, no matter how hard I look I can't find the error, someone would know?

Aucun commentaire:

Enregistrer un commentaire