Aller au contenu

[RESOLU] sql - update à plusieurs conditions...


serik

Messages recommandés

Voilà le problème, j'ai une table avec 4 champs : Nick0 à Nick3.

Le but de la requête serait de mettre Nick# à "LIBRE" là où Nick# est égal à "blablabla".

Je ne connais pas à l'avance le #.

Est-il possible de fair ça en une seule requête?

Merki!

Lien vers le commentaire
Partager sur d’autres sites

Voilà le problème, j'ai une table avec 4 champs : Nick0 à Nick3.

Le but de la requête serait de mettre Nick# à "LIBRE" là où Nick# est égal à "blablabla".

Je ne connais pas à l'avance le #.

Est-il possible de fair ça en une seule requête?

Merki!

Selon ton langage, tu crées un fichier dans lequel tu définis en tant que constante tes fonctions sql. Il ne te reste qu'à passer en paramètre de string les trucs que tu connais pas :

Exemple en php : je crée un fichier requete.sql.php avec :

define (MA_REQUETE, "Update table set %s=%s WHERE %s=%s");

Dans mon code, je génère ma requête via

sprintf(MA_REQUETE, $String1, $String2, $String3, $String4). Chaque $Stringi viendra prendre la place d'un %s dans l'ordre d'apparition de ceux-ci.

LSP, le manchot qui rentre à la maison

Lien vers le commentaire
Partager sur d’autres sites

Ce qui fait 4 éxécutions de requêtes... (une par nick).

En fait je cherche une requête qui ferait "UPDATE table SET Nick0='LIBRE' WHERE Nick0='$LeNick' AND SET Nick1='LIBRE' WHERE Nick1='$LeNick' AND SET [....] LIMIT 1

J'insiste sur le "en une seule requête" car c'est une requête qui pourrait prendre un certain temps et scanner une seule fois la table et un plus non négligeable.

Pour l'instant à part enregistrer où le joueur était pour la dernière fois (ce qui m'implique pas mal de modif) je n'ai pas trouvé.

Lien vers le commentaire
Partager sur d’autres sites

UPDATE :

En fait j'ai réussi pas avec une mais en deux requêtes.

$sql = "SELECT `PartyId`, `Nick0`, `Nick1`, `Nick2`, `Nick3` FROM `OG_Parties` WHERE `Nick0`='$Nick' OR `Nick1`='$Nick' OR `Nick2`='$Nick' OR `Nick3`='$Nick' LIMIT 1";

Après je fais des tests dans le script php, et j'appelle soit update soit delete suivant qu'il y ait encore au moins 1 joueur ou non sur la partie.

De toute façon je n'aurai pas pu le faire en une seule requête car le delete dépend du nombre de places libres.

Et évidemment, si j'avais précisé que y'avait un identifiant à la partie ça aurait été peut être plus simple pour vous.

Merci quand même, @+

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...