/ 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
hitliste-historik
Fra : Leif Neland


Dato : 05-08-09 23:36

Mysql

Jeg har en tabel med records, der har points.
En gang i døgnet vil jeg gemme placeringen i en anden tabel

hitliste:
id   points
15   1200
3   985
22   136

historik:
dato      id   placering
2009-08-05   3   2
2009-08-05   15   1
2009-08-05   22   3


Kan det laves i en enkelt sql-sætning, eller må jeg lave en loop i php?

 
 
Arne Vajhøj (06-08-2009)
Kommentar
Fra : Arne Vajhøj


Dato : 06-08-09 00:05

Leif Neland wrote:
> Mysql
>
> Jeg har en tabel med records, der har points.
> En gang i døgnet vil jeg gemme placeringen i en anden tabel
>
> hitliste:
> id points
> 15 1200
> 3 985
> 22 136
>
> historik:
> dato id placering
> 2009-08-05 3 2
> 2009-08-05 15 1
> 2009-08-05 22 3
>
> Kan det laves i en enkelt sql-sætning, eller må jeg lave en loop i php?

Prøv:

INSERT INTO historik
SELECT NOW(),id,(SELECT COUNT(*)+1 FROM hitliste h2 WHERE
h2.points<h1.points) AS placering FROM hitliste h1

Det kræver formentlig en MySQL der ikke er fra middelalderen.

Arne

Leif Neland (06-08-2009)
Kommentar
Fra : Leif Neland


Dato : 06-08-09 08:53

Leif Neland wrote:
> Mysql
>
> Jeg har en tabel med records, der har points.
> En gang i døgnet vil jeg gemme placeringen i en anden tabel
>
> hitliste:
> id points
> 15 1200
> 3 985
> 22 136
>
> historik:
> dato id placering
> 2009-08-05 3 2
> 2009-08-05 15 1
> 2009-08-05 22 3
>
>
> Kan det laves i en enkelt sql-sætning, eller må jeg lave en loop i php?

Nå, det var ikke så svært

INSERT INTO images_rating_history
SELECT @rownum := @rownum +1, image_id, date( now( ) )
FROM `images` , (SELECT @rownum :=0)
ORDER BY rating DESC
LIMIT 100

Søg
Reklame
Statistik
Spørgsmål : 177419
Tips : 31962
Nyheder : 719565
Indlæg : 6407871
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste