Lekérdezés MySQL 5-ben jó MySQL4-ben már nem.
Adott az alábbi lekérdezés:Ez a lekérdezés MySQL 5 alatt szépen sorrendbe rakja a mai szavazatokat a szavazatok száma és a szavazat frissessége szerint csökkenő sorrendben.
MySQL 4 alatt viszont az alábbi hibaüzenetet adja:
Mi lehet a probléma?
■ SELECT szavazat FROM szavazatok WHERE ido>'2006-11-28 17:08:13' GROUP BY (szavazat) ORDER BY COUNT(*) DESC, ido DESC LIMIT 10;
MySQL 4 alatt viszont az alábbi hibaüzenetet adja:
#1111 - Invalid use of group function
Mi lehet a probléma?
Hibás SQL
Nem érthető, hogy hogyan akarsz `ido` szerint rendezni, ha már egyszer csoportosítottál `szavazat` szerint. A csoportosítás után már eltűnik az `ido` oszlop. A rendezés pedig a csoportosítás után történne.
ORDER BY mögött csak olyan kifejezés állhat, ami vagy szerepelt a GROUP BY mögött, vagy pedig egy aggregátum (mint pl. a COUNT, MAX stb).
esetleg így?
Köszi
Biztos?
Ne gondold, hogy mindenképpen vitatkozni akarok vagy ilyesmi, de szeretek utánajárni az igazságnak.
Amúgy MySQL bizonyos verziói alatt azért működhet a dolog, mert a MySQL tartalmaz egy nem szabványos bővítést: http://dev.mysql.com/doc/refman/5.0/en/group-by-hidden-fields.html. De ahogy a leírásból kivehető, csak akkor van értelme a dolognak, és akkor működik normálisan, ha olyan mezőket hagysz ki a GROUP BY-ból és használsz a SELECT-ben valahol máshol, amik funkcionálisan függenek a GROUP BY-ban szereplő mezőktől.
MS ACCESS
A lekérdezés:
Hehe
MySQL in XAMMP
xampp-win32-1.5.3a