10. oktober 2003 - 10:21
Der er
20 kommentarer og 2 løsninger
mest økonomiske count-funktion
hvordan ser den mest økonomiske count-funktion ud? den skal kun tælle antallet af forekomster af fx id.
Annonceindlæg fra Barco
Er jeres mødelokaler sikre nok?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
10. oktober 2003 - 10:24
#1
Hvad mener du med "forekomster af id" ? Det mest økonomiske er at tælle tupler (rækker) med count(*). Det tager længere tid med fx count(feltnavn) Men hvad er det du vil?
10. oktober 2003 - 10:25
#2
ok, du giver ikke et helt eksempel?
10. oktober 2003 - 10:26
#3
COUNT er uden tvivl optimeret rigtigt meget, så COUNT er uden tvivl det rigtige valg. Husk at COUNT(*) tæller antal records i tabellen mens COUNT(feltnavn) tæller antal records hvor feltet ikke er NULL ! Så vælg den rette til dit kontekst.
10. oktober 2003 - 10:29
#4
jeg skal kun tælle antallet af rækker i en tabel. hvad er det bedste i den situation? (gerne kode)
10. oktober 2003 - 10:29
#5
Hvis du skal bruge antallet af raekker i tabellen uden at det nodvendigvis behover at vaere 100% korrekt, saa kan du ogsaa kore folgende: SELECT rows FROM sysindexes WHERE id = OBJECT_ID('table_name') AND indid < 2 Hvor table_name er din tabel, det eneste problem her er at dette tal ikke bliver opdateret hele tiden, men kun en gang imellem
10. oktober 2003 - 10:29
#6
Eksempel? Jeg må igen spørge dig om hvad du vil. Du kan selvfølgelig godt få select count(*) from poulnyrup men der er jo mange varianter ;)
10. oktober 2003 - 10:30
#7
"tælle antallet af rækker". så: tælle antallet af rækker
10. oktober 2003 - 10:30
#8
mener: "tælle antallet af rækker". så: select count(*) from poulnyrup
10. oktober 2003 - 10:32
#9
Den her virker ikke: $number_indlaeg = mysql_query("SELECT COUNT(*) as number_indlaeg FROM forum_indlaeg WHERE forum = '$f' GROUP BY emne"); print "$number_indlaeg";
10. oktober 2003 - 10:37
#10
hvad går der galt? $number_indlaeg = mysql_query("SELECT COUNT(*) FROM forum_indlaeg WHERE forum = '$f' GROUP BY emne"); print "$number_indlaeg";
10. oktober 2003 - 10:54
#11
ingen der lige vil hjælpe mig det sidste stykke på vejen?
10. oktober 2003 - 11:14
#12
$result = mysql_query("SELECT COUNT(*) as number_indlaeg FROM forum_indlaeg WHERE forum = '$f'); $row=mysql_fetch_array($result); print $row['number_indlaeg'];
10. oktober 2003 - 11:22
#13
er det så simpelt? er det en økonomisk (er glad for det ord :-) måde at tælle på?
10. oktober 2003 - 11:23
#14
kan jeg ikke bruge GROUP BY også?
10. oktober 2003 - 11:37
#15
hvorfor kan man egentlig ikke det??
10. oktober 2003 - 11:37
#16
Den her er i hvertfald ikke retvisende: $row = mysql_fetch_array(mysql_query("SELECT COUNT(id) as number_indlaeg FROM forum_indlaeg GROUP BY id")); print "$row[number_indlaeg]";
10. oktober 2003 - 11:38
#17
heller ikke når jeg skifter emne i GROUP BY
10. oktober 2003 - 11:43
#18
for missen, hvad er der los? har prøvet at tjekke efter på mysql.com, men jeg kan ikke finde fejlen... hjæææælp
10. oktober 2003 - 12:18
#19
Nu startede du med at spørge om antal række i en tabel, så det var det du fik af mig. Du vil så have antal indlæg pr. emne. Så skal din SQL se ud som $result = mysql_query("SELECT emne,COUNT(*) as number_indlaeg FROM forum_indlaeg WHERE forum = '$f' group by emne"); (glemte vist en " før) og du skal bare løbe det igennem som ethvert andet resultat (while-løkke, du ved)
10. oktober 2003 - 16:13
#20
takker! bare svar erik :-)
10. oktober 2003 - 16:47
#21
ok ;)
10. oktober 2003 - 16:47
#22
oookay ;))
Computerworld tilbyder specialiserede kurser i database-management