29. juni 2000 - 22:37
Der er
14 kommentarer og 1 løsning
SQL problem
Hejsa! Jeg er ved, at lave et system om fra en access db, til mysql. Jeg brugte tidligere nedstående sql-sætning, tyvstjålet fra eksperten :-) SQL = "SELECT oplos, Count(oplos) AS Antal FROM log GROUP BY oplos ORDER BY Antal DESC" Det, den gør er, at den summerer op, over hvert nyt navn (oplos) den finder. Dvs, at jeg får et recordset ud, som kunne se sådan ud: Oplos Antal 1024*768 10 800*600 5 1200*1024 2 Sådan var det før, men nu tæller den galt! Tallet ud for den første opløsning bliver ligmed tallet af rækker i db´en ?!? Nogen, der kan hjælpe?
Annonceindlæg fra Barco
SQL = "SELECT Count(oplos) AS Antal FROM log GROUP BY oplos ORDER BY Antal DESC" Vil jeg sige ... kender dog ikke så meget til MySQL :)
Jeg synes du skal prøve: SQL = "SELECT oplos, Count(*) AS Antal FROM log GROUP BY oplos ORDER BY Antal DESC"
phylox: din virker ikke..den eneste forskel på det oprindelige, og dit forslag er jo bare, at du ikke hiver oplos med ud... erikjac: dit forslag virker heller ikke...den tæller stadig bare alle posterne...
GROUP BY .. ORDER BY .. DESC er fejlbehæftet i tidlige versioner af MySQL. Sørg for at opgradere til en nyere version .. efter hukommelsen skal den være nyere end .. umm .. .33 til sidst. Det kunne løse problemet.
Ok, 1416. Jeg har prøvet en variant. En liste over fødselsdage, hvor et felt er en alder (heltal) Når jeg fyrer denne af SELECT alder, Count(*) AS Antal FROM fdage GROUP BY alder ORDER BY Antal DESC får jeg en tabel som denne (der er 22 der er 4 år gamle, osv.): alder Antal 4 22 3 17 5 16 2 11 1 6 6 1 og det er det som jeg tror du spørger om. Hmm, jeg ved faktisk ikke lige hvilken version mit webhotel har. Det kunne jeg jo undersøge.
hmmm det hjælper ikke! Hvilken version har dit webhotel?
den tæller ca 2 gange for meget +/- 5...det er rimeligt mærkeligt
Min webcampingplads bruger 3.22.25 - og det er ifølge
http://www.mysql.com lidt gammelt, da de allerede
er oppe på 3.23.21. Men den virker jo, ;-)
Har du prøvet uden ORDER BY ?
07. juli 2000 - 14:46
#10
HVordan ser tabellen helt præcis ud? (hvilken kode har du brugt til at lave den med?)
07. juli 2000 - 22:28
#11
sådan her: create table log ( id int unsigned not null auto_increment, oplos char(9), browser char(125), dato date, referer char(254), primary key (id) )
07. juli 2000 - 22:40
#12
jeg prøvede, for sjov, at overføre date´en til min udbyder, og teste min sql der..det virkede! EJ får pointene, for han kom med en løsning, der virkede...jeg har dog ikke brugt den, da det er bedre med COUNT(oplos), end COUNT(*) Men tak!
07. juli 2000 - 22:55
#13
Ok - herligt. Det var kun "hjemme hos dig selv" det ikke virkede. Mon det var et MySql-versionsproblem....??
07. juli 2000 - 23:07
#14
det tror jeg. Koden er 100% den samme. Tabellen er defineret med den samme sql-sætning. Indholdet er tabellen er der ikke ændret ved. Så det er nok en versions problem.
07. juli 2000 - 23:48
#15
Tja .. :-)
Computerworld tilbyder specialiserede kurser i database-management