MySQL error "This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME
Hoe los ik de volgende query op zodat het wel werkt:
SELECT * FROM logs WHERE id IN (SELECT id FROM logs ORDER BY utc DESC LIMIT 100) ORDER BY ip ASC;
Voor de duidelijkheid: ik wil de 100 nieuwste logs, maar niet perse in de volgorde van nieuwheid. Ik dacht het zo te doen: Alle logs opvragen met de 100 nieuwste ID's. Dan kan ik daarna desnoods nog ORDER en LIMIT toevoegen.
De error:
This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
Ik draai MySQL 5.0.27-community-nt, niet echt een heel oude versie dus...
Weet iemand hoe het wel kan in 1 query?
Dank
SELECT * FROM logs WHERE id IN (SELECT id FROM logs ORDER BY utc DESC LIMIT 100) ORDER BY ip ASC;
Voor de duidelijkheid: ik wil de 100 nieuwste logs, maar niet perse in de volgorde van nieuwheid. Ik dacht het zo te doen: Alle logs opvragen met de 100 nieuwste ID's. Dan kan ik daarna desnoods nog ORDER en LIMIT toevoegen.
De error:
This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
Ik draai MySQL 5.0.27-community-nt, niet echt een heel oude versie dus...
Weet iemand hoe het wel kan in 1 query?
Dank
Gesponsorde koppelingen:
Je kunt dus geen LIMIT gebruiken in een subquery.
SELECT *
FROM logs
ORDER BY utc DESC
LIMIT 100
SELECT *
FROM logs
ORDER BY utc DESC
LIMIT 100
Ok, jij hebt dus niet opgelet. Zoals ik al zei: ik wil niet perse orderen op utc/nieuwheid, dus het moet wel iets met een subquery zijn. Het kan niet in 1x, zoals jij doet, want dan sorteer je OF alleen op utc, OF je krijgt de verkeerde 100 results.
Zie deze tut hoe je een LIMIT in een subquery kunt gebruiken in MySQL.
Een betere/completere database gebruiken is natuurlijk ook altijd een mogelijkheid.
Een betere/completere database gebruiken is natuurlijk ook altijd een mogelijkheid.
Quote:
Een betere/completere database gebruiken is natuurlijk ook altijd een mogelijkheid.
Enlighten me. Ik heb 1 tabel: logs, met velden: id, user_id, utc, log. Het is een MyISAM tabel, dus geen relaties. Helemaal standalone.
Hoe kan het beter en wat is dan de oplossing?Ik ga je tut bekijken
Ach, MySQL wil nog wel eens tabellen naar de bliksem helpen, ga bv. maar eens een tabel optimalizeren wanneer je vrijwel geen schijfruimte meer hebt... Weg data, foetsie, verdwenen, zo het bit-riool in.
Daarnaast mist zoiets simpels als een LIMIT in een subquery in MySQL, dat is toch echt niets bijzonders, maar het ontbreekt dus wel.
Daarnaast ontbreekt er nog wel meer, maar veelprutsers programmeurs vinden het normaal om zelf het wiel nogmaals uit te vinden en constant het risico te lopen om hun data kwijt te raken. Tja, MySQL, ga niet klagen wanneer basic database functionaliteit ontbreekt of je data corupt is, dat hoort er bij.
Daarnaast mist zoiets simpels als een LIMIT in een subquery in MySQL, dat is toch echt niets bijzonders, maar het ontbreekt dus wel.
Daarnaast ontbreekt er nog wel meer, maar veel
De oplossing is verbazend makkelijk:
@ALL
Ik weet van MySQL 5 dat die wel veel ondersteunt aan subquery's maar dat je wel een AS (alias) mee moet geven aan een subquery, die je vervolgens weer gebruikt in de daarom liggende query.
Dat soort dingen op een goede manier opbouwen wil ook wel eens helpen.
Ik weet van MySQL 5 dat die wel veel ondersteunt aan subquery's maar dat je wel een AS (alias) mee moet geven aan een subquery, die je vervolgens weer gebruikt in de daarom liggende query.
Dat soort dingen op een goede manier opbouwen wil ook wel eens helpen.



