requète mysql

WRInaute discret
Bonsoir,

J'ai un problème sur une reuète mysql que je n'arrive pas à résoudre :
admettons une table visites avec le champ id en auto-increment et un champ date

Je voudrais récupérer la date minimum et la date maximum en me limitant aux 5 derniers enregistements.

J'ai fait :
SELECT MIN(date), MAX(date)
FROM visites
WHERE id>=(SELECT id FROM visites ORDER BY date DESC LIMIT 4,1)

mais mysql me retourne une erreur

Si quelqu'un voit la solution
 
WRInaute discret
ok, mais mais cela va me retourner 5 "couples" de dates, or j'en veux une seule, le min et le max sur les 5 derniers enregistrements
 
WRInaute impliqué
essaye ceci normalement c'est équivalent à ce que tu voulais faire
Code:
SELECT MIN(date), MAX(date)
FROM visites
WHERE id IN (SELECT id FROM visites ORDER BY date DESC LIMIT 4,1)
 
WRInaute discret
j'ai essayé ta requete (en mettant LIMIT 0,5) :
SELECT MIN(date), MAX(date)
FROM visites
WHERE id IN (SELECT id FROM visites ORDER BY date DESC LIMIT 0,5)

ca me donne ce message d'erreur :
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id FROM visites ORDER BY date DESC LIMIT 0,5)'

j'ai simplifié la requete au maximum :
SELECT date FROM visites WHERE id IN ( SELECT id FROM visites)

ca ne fonctionne toujours pas !
 
WRInaute passionné
je te conseil ca :

Code:
SELECT date
FROM visites
ORDER BY date DESC LIMIT 0,5

Tu boucles sur le résultat : la première date c'est la max et la dernière c'est la min.

Ou encore en deux fois :
Code:
SELECT MAX(date)
FROM visites

SELECT date
FROM visites
ORDER BY date DESC LIMIT 4,1
 
WRInaute impliqué
ah c'est sans doute que date est un mot clef réservé pour mysql il faut que tu mettes des quotes peut être :
Code:
SELECT MIN(`date`), MAX(`date`)
FROM `visites`
WHERE `id` IN (SELECT `id` FROM visites ORDER BY `date` DESC LIMIT 0,5)
 
WRInaute passionné
pas mal

moi je ne m'habituerai jamais aux clauses sur des champs qui n'ont pas été selectionnés

j'aurai donc inclus le champs date dans la sous requête

rog
 
WRInaute accro
julienr a dit:
ah c'est sans doute que date est un mot clef réservé pour mysql
Je pense pareil, 'date' est réservé pour mysql il faut changer ton intitulé de champ dans ta DB, par exemple madate ou autre mais pas 'date' seul.
 
Discussions similaires
Haut