/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Mysql hjælp
Fra : Anders Lund


Dato : 27-01-02 15:46

Jeg har næsten 1000 poster i en mysql database, jeg bruger følgende sql
string til at finde; i hvilken uge post er skrevet.

select DATE_FORMAT(nyheder.dato,'%u') as uge from nyheder order by
nyheder.dato desc

Giver følgende resultat:
04
04
04
03
03
03
03
01
01
01
01
52
52


Men da der er næsten 1000 nyheder i databasen sysntes jeg det belaster
serveren unødvendigt meget, så jeg kunne godt tænke min kun at få en en post
ud fra hver uge. Group by virker ikke da uge 1 i 2001 og uge 1 i 2002 da
kommer i samme gruppe, hvilket ikke er så godt.

Følgende data ønskes
04
03
01
52

Er der nogen der kan hjælpe mig?


Mvh
Anders Lund




 
 
Kristian Damm Jensen (27-01-2002)
Kommentar
Fra : Kristian Damm Jensen


Dato : 27-01-02 17:13

Anders Lund wrote:
>
> Jeg har næsten 1000 poster i en mysql database, jeg bruger følgende sql
> string til at finde; i hvilken uge post er skrevet.
>
> select DATE_FORMAT(nyheder.dato,'%u') as uge from nyheder order by
> nyheder.dato desc

<snip>

> Men da der er næsten 1000 nyheder i databasen sysntes jeg det belaster
> serveren unødvendigt meget, så jeg kunne godt tænke min kun at få en en post
> ud fra hver uge. Group by virker ikke da uge 1 i 2001 og uge 1 i 2002 da
> kommer i samme gruppe, hvilket ikke er så godt.

<snip>

> Er der nogen der kan hjælpe mig?

select distinct DATE_FORMAT(nyheder.dato,'%u') as uge
from nyheder
order by nyheder.dato desc


--
Kristian Damm Jensen | Feed the hungry at www.thehungersite.com
kristian-damm.jensen@cgey.dk | Two wrongs doesn't make a right,
ICQ# 146728724 | but three lefts do.


Anders Lund (27-01-2002)
Kommentar
Fra : Anders Lund


Dato : 27-01-02 20:46

Kristian Damm Jensen <kristian-damm.jensenRE@MOVEcgey.com> skrev i en
nyhedsmeddelelse:3C542729.DA35C655@MOVEcgey.com...
> select distinct DATE_FORMAT(nyheder.dato,'%u') as uge
> from nyheder
> order by nyheder.dato desc

Det giver det samme resultat som group
Har I andre ideer?

Mvh
Anders Lund



Mads Lie Jensen (27-01-2002)
Kommentar
Fra : Mads Lie Jensen


Dato : 27-01-02 21:06

On Sun, 27 Jan 2002 20:46:18 +0100, "Anders Lund" <anders@itnews.dk>
wrote:

>> select distinct DATE_FORMAT(nyheder.dato,'%u') as uge
>> from nyheder
>> order by nyheder.dato desc
>
>Det giver det samme resultat som group
>Har I andre ideer?

Ja. Medtag f.eks måneden i din DATE_FORMAT så den vil give noget ala
uge/år.


--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk

Directory Opus - nu også til windows - http://www.gpsoft.com.au

Kristian Damm Jensen (29-01-2002)
Kommentar
Fra : Kristian Damm Jensen


Dato : 29-01-02 10:21

Anders Lund wrote:
>
> Kristian Damm Jensen <kristian-damm.jensenRE@MOVEcgey.com> skrev i en
> nyhedsmeddelelse:3C542729.DA35C655@MOVEcgey.com...
> > select distinct DATE_FORMAT(nyheder.dato,'%u') as uge
> > from nyheder
> > order by nyheder.dato desc
>
> Det giver det samme resultat som group
> Har I andre ideer?

Undskyld, jeg så ikke lige den tilføjelse med uge1/2001, uge1/2002.

Det korte af det lange er, at du vil lave en gruppering, så du undgår
dubletter. Men du kan ikke fjerne nogle dubletter og beholde andre. Hvis
du har

1 (2001)
1 (2001)
2 (2001)
1 (2001)

hvordan skal nogen (slev et intelligent menneske) da kunne gennemskue,
at du kun vil have fjernet den anden, men ikke den tredie forekomst af
1? Du er nødt til at give den ekstra information, der står i parentesen
(eller noget tilsvarende). Du kan så evt. sortere denne information fra
bagefter.

Omend jeg ikke forstår, hvad du skal bruge en liste som

1
2
1

til, når du ikke ved, hvilket år der refereres til. Men det er dit
problem.


--
Kristian Damm Jensen | Feed the hungry at www.thehungersite.com
kristian-damm.jensen@cgey.dk | Two wrongs doesn't make a right,
ICQ# 146728724 | but three lefts do.


Anders Hertz (28-01-2002)
Kommentar
Fra : Anders Hertz


Dato : 28-01-02 08:56

On Sun, 27 Jan 2002 15:46:09 +0100, "Anders Lund" <anders@itnews.dk>
wrote:

>Jeg har næsten 1000 poster i en mysql database, jeg bruger følgende sql
>string til at finde; i hvilken uge post er skrevet.
>
>Følgende data ønskes
>04
>03
>01
>52
>
>Er der nogen der kan hjælpe mig?

Kig lidt nærmere på SELECT DISTINCT (der så vidt jeg husker kun skulle
give en række).

/Anders


Anders Lund (28-01-2002)
Kommentar
Fra : Anders Lund


Dato : 28-01-02 22:59


Anders Hertz <a_hertz.ReMoVe@yahoo.com> skrev i en
nyhedsmeddelelse:3c550367.257470442@sunsite.dk...

>
> Kig lidt nærmere på SELECT DISTINCT (der så vidt jeg husker kun skulle
> give en række).
Det funker, MEN den ligger uge 1 år 2001 og uge 1 år 2002 i samme række.
Er der en måde jeg kan undgå det? (Jeg kan ikke lige gennemskue at skulle
bruge månen også. som Mads forslog)

Mvh
Anders Lund





Anders Hertz (28-01-2002)
Kommentar
Fra : Anders Hertz


Dato : 28-01-02 09:40

On Sun, 27 Jan 2002 15:46:09 +0100, "Anders Lund" <anders@itnews.dk>
wrote:

>Jeg har næsten 1000 poster i en mysql database, jeg bruger følgende sql
>string til at finde; i hvilken uge post er skrevet.
>
>Følgende data ønskes
>04
>03
>01
>52
>
>Er der nogen der kan hjælpe mig?

Kig lidt nærmere på SELECT DISTINCT (der så vidt jeg husker kun skulle
give en række).

/Anders


Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste