FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Medlem
|
Hej!
Jag behöver hjälp med SQL. Jag har en databas med testresultat och jag vill hämta ut de senaste 50 och sortera dem efter resultatet. tex: SELECT * FROM resultat ORDER BY date DESC LIMIT 50. Och sedan på denna strängen ORDER BY resultat DESC. (Jag vet att man kan skriva ORDER BY date DESC, resultat DESC men det löser inte mitt problem). Hjälp någon? |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Har WN som tidsfördriv
|
Hur ser resultat fältet ut? Är det en siffra?
|
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Medlem
|
||||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Har WN som tidsfördriv
|
Principen som jag brukar nyttja:
SELECT * FROM Tabell WHERE PrimaryKey IN (SELECT TOP 50 PrimaryKey FROM Tabell ORDER BY DateCol) ORDER BY ResultCol Kör du sql-server finns det alternativ med CTE (common table expressions) som är något effektivare. |
||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Medlem
|
Jag får det inte riktigt att funka:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '50 res_id FROM test_result ORDER BY res_date) ORDER BY res_result Så här ser SQLn ut: SELECT * FROM test_result WHERE res_id IN (SELECT TOP 50 res_id FROM test_result ORDER BY res_date) ORDER BY res_result Hjälp? ![]() |
|||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Medlem
|
TOP är för SQL-server, motsvarigheten i MySQL är Limit. Dock fungerar det inte att använda Limit i en IN-sats i MySQL (åtminstone inte den version som Binero kör vilket är femman tror jag)
|
||
![]() |
![]() |
![]() |
#7 | |||
|
||||
Medlem
|
Faan också! Vad gör jag då?
|
|||
![]() |
![]() |
![]() |
#8 | |||
|
||||
Mycket flitig postare
|
Låter som du får ta ut resultatet ur första sql frågan och fixa sorteringen efteråt.
|
|||
![]() |
![]() |
![]() |
#9 | ||
|
|||
Mycket flitig postare
|
Detta funkar i MySQL för mig:
SELECT * FROM (SELECT * FROM resultat ORDER BY date DESC LIMIT 50) AS s ORDER BY resultat DESC |
||
![]() |
![]() |
![]() |
#10 | |||
|
||||
Medlem
|
Perfekt!
Tusen tack! ![]() |
|||
![]() |
![]() |
Svara |
|
|