[RESOLU] Udpate valeur NON

Eléphant du PHP | 80 Messages

07 mars 2019, 21:01

Bonjour,

J'ai une entrée en bdd de type boolean.
Je n'arrive pas à trouver la focntion UPDATE qui me permette de mettre la valeur à 0 si elle etait à 1 initialement, et inversement.

Un truc du style : "UPDATE table SET valeur = !valeur WHERE id='2' "

Il serait bien sûr possible de trouver la valeur actuelle, faire un 'if' et faire un update ensuite, mais je ne peux pas imaginer qu'une façon plus simple soit faisable.

En vous remerciant de votre aide !

Stéphane

Mammouth du PHP | 881 Messages

08 mars 2019, 00:21

Tu peux y aller simplement ainsi:

Code : Tout sélectionner

UPDATE table SET valeur = 1 WHERE id=2 AND valeur = 0;
Pour inverser la valeur ... c'est une bonne question. J'aime ton hypothèse initiale, mais à te lire il faut comprendre que ce n'est pas la bonne façon de faire.

Veuille utiliser les balises du menu bleu pour marquer ton texte et séparer ton code de tes commentaires. :non:
Soyez artisans de paix

Mammouth du PHP | 1967 Messages

08 mars 2019, 09:47

j'ai essayé ceci ca marche

UPDATE `table` SET `bool_field` = IF(`bool_field` = 1, 0, 1) WHERE 1

à toi d'adapter le where
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

08 mars 2019, 11:12

IMPORTANT : Si tu exécute avec WHERE 1, ça va modifier TOUS les enregistrements de ta table donc fait gaffe à ne pas le faire sur une base de prod sans avoir mis correctement ton WHERE ;-)
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 881 Messages

08 mars 2019, 15:30

On peut aussi imaginer une formule universelle sans IF comme ceci:
UPDATE `table` SET `bool_field` = ABS(`bool_field`-1) WHERE id= 1
Soyez artisans de paix

Eléphant du PHP | 80 Messages

09 mars 2019, 13:07

Merci beaucoup !!

J'aime beaucoup la solution de Patriboom dans sa conception logique de prendre la valeur absolue de la valeur actuelle -1 .. :)
Et coté spols, ca me permet aussi de comprendre une certaine organisation possible dans une requête sql..

Merci à tous les 2 ..