rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[SQL] LIMIT avec UPDATE

Geromini, le lundi 2 avril 2007 à 09:58:22
Bonjour à tous !

J'aimerais s'il est possible d'utiliser la clause LIMIT avec un UPDATE.
Si non, existe-t'il une autre façon de prendre un seul tuple ?

Merci d'avance pour vos réponses. "Il est dit que celui qui fait mal à autrui ne trouvera jamais le sommeil."
Configuration: Windows XP
Internet Explorer 6.0
Répondre à Geromini  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Geromini, le lundi 2 avril 2007 à 10:06:00
Rebonjour !

Et bien je crois que ce n'est pas la peine que vous preniez le temps de me répondre puisque je me suis débrouillé autrement.

Mais si ce post intéresse d'autres personnes, je vous invite tout de même à me répondre. Je suis moi-même encore intéressé par vos réponses.

A la prochaine ! "Il est dit que celui qui fait mal à autrui ne trouvera jamais le sommeil."
Répondre à Geromini

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Sh@e, le mercredi 9 avril 2008 à 12:31:32
L'idéal serait que tu laisse ta solution sur le forum afin que tout le monde en profite :-)

(Je me permets de dire cela car je suis tombé sur le forum en première réponse google pour ce problème)
Répondre à Sh@e

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
M3uH, le mercredi 16 juillet 2008 à 15:04:57
Bonjour bonjour,

J'arrive après la guerre, genre seulement 3 mois plus tard, mais assez simplement on peut récupérer la liste des enregistrements concernés en faisant un SELECT qui aurait la même clause WHERE que l'UPDATE qu'on envisage. Ensuite, on ne prend que la première ligne avec PHP (par exemple), puis on fait l'UPDATE en utilisant la clé primaire.

Exemple (parce que c'est peut-être pas très clair ^^):

Soit une table "meuhmeuh" avec les champs: id | libelle | categorie | bonus_field

Si je veux faire:
$variable=mysql_query("UPDATE meuhmeuh SET bonus_field='Marguerite' WHERE libelle LIKE 'vache' AND categorie='normande'");

Je fais:
$variable1=mysql_query("SELECT id FROM meuhmeuh WHERE libelle LIKE 'vache' AND categorie='normande'");
$variable2=mysql_fetch_array($variable1); //extraction du premier enregistrement
mysql_query("UPDATE meuhmeuh SET bonus_field='Marguerite' WHERE id=".$variable2['id']);

En ne passant que par SQL la syntaxe devient un peu carnage mais est faisable:

UPDATE meuhmeuh SET bonus_field='Marguerite' WHERE id IN (
SELECT id FROM meuhmeuh WHERE libelle LIKE 'vache' AND categorie='normande' LIMIT 0,1
);

Voilà, comme le LIMIT n'est pas géré avec UPDATE (en tout cas sur mon MySQL 4.1.9), on a ici un moyen de le détourner en mettant un SELECT en cascade de l'UPDATE.

A vos claviers!
M3uH the Fun be with you.
Répondre à M3uH

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 M3uH, le mercredi 16 juillet 2008 à 15:12:12
Erratum: il vous faut MySQL 5 minimum pour gérer le LIMIT dans une sous-requête.
Le easyPHP de test (eh oui y'a des vieux) avec la version 4.1.9 dont je parlais renvoie:

#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

Donc reste la possibilité de passer par le langage de traitement des infos qui (en théorie) récupère les résultats de requêtes (à moins que l'objectif soit de faire des requêtes UPDATE une par une dans la console SQL...)

Voilà, stou pour aujourd'hui a priori :)
Répondre à M3uH
Discussions pertinentes trouvées dans le forum
28/07 11h14SQL requete UPDATE5
15/02 16h59Php+sql:requete update8
20/12 23h10[SQL]Requête update0
07/06 14h45[sql] pb update colonne1
Plus de discussions sur « [SQL] LIMIT avec UPDATE »
Logiciels pertinents trouvés dans les téléchargements
Télécharger WAMP Server 2.0cWAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de...Catégorie: Serveurs
Licence: Freeware/gratuit
Télécharger Delphi 6 Edition personnelle 6.0Delphi 6 Edition personnelle - La société Borland (Inprise) a mis à disposition gratuitement, pour un usage non-commercial, la version 6 de son...Catégorie: Delphi
Licence: Freeware/gratuit
Télécharger Easy CD-DA Xtractor 11_5_3 trialEasy CD-DA Xtractor - Easy CD-DA Xtractor est un extracteur de CD audio pour Windows (CD ripper) capable d'encoder directement aux formats MP3 et...Catégorie: Extraction
Licence: Demo
Télécharger HFS (Http File Server)  2.2dHFS (Http File Server) - HFS est une manière ultra-simple de partager des fichiers avec des amis. Lancez HFS Glissez un dossier à partager...Catégorie: Serveurs
Licence: Open Source
Plus de logiciels gratuits sur « [SQL] LIMIT avec UPDATE »