IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

erreur DELETE WHERE MAX


Sujet :

Requêtes MySQL

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut erreur DELETE WHERE MAX
    Bonjour à tous

    Je cherche à effacer l'enregistrement ayant le champ date le plus grand
    j'ai essayé avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM table WHERE date=MAX(date)
    j'ai cette erreur :
    #1111 - Invalid use of group function

    Quelqu'un peut me dire pourquoi cette erreur et quelle est la requête valide ?

    merci

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bon j'ai trouvé une autre façon de faire, mais c'est pas super élégant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DELETE FROM table 
    WHERE date<=NOW() 
    ORDER BY date DESC 
    LIMIT 1

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE FROM TABLE 
    WHERE date = (SELECT MAX(date)
                  FROM   TABLE)
    Tout simplement !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    En ajoutant que nommer une table 'table' et une colonne 'date' n'est pas une bonne idée parce que ce sont deux mots du langage SQL.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. [VB 6.0 + Access] Erreur "Delete" !
    Par null_as400 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/07/2007, 04h11
  2. Message d'erreur , delete Datagridview
    Par shadowil dans le forum VB.NET
    Réponses: 1
    Dernier message: 04/07/2007, 10h08
  3. Erreur Delete Vers AS400
    Par jfontaine dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 06/06/2007, 14h23
  4. [Oracle 9i]: erreur ORA-01925 (max enables roles)
    Par NPortmann dans le forum Oracle
    Réponses: 2
    Dernier message: 30/03/2007, 09h39
  5. Problème de requête avec WHERE MAX()
    Par seb92500 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 24/01/2007, 12h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo