Permalänk
Medlem

SQLite LIMIT?

Mitt problem går ut på att jag vill ha de 500 första träffarna från ett visst mönster ur en databas, men limit ger mig de 500 sista.
queryn ser ut som fölande:

SELECT * FROM tabell WHERE score => 7 ORDER BY score ASC LIMIT 500

Vilket alltså ger mig de 500 med lägst score över 7.
nu blir det ungefär " 8 8 8 8 8 7.99 7.98 ....7" jag vill ha "10 10 10 9.98 9.96..8"
Hur skall detta göras utan fullösning?

Visa signatur

Citera om du vill ha svar.

Permalänk
Medlem

ORDER BY score DESC

Permalänk
Medlem

Menade att skriva så och det är då det blir som jag beskriver. Tack för påpekandet.

Visa signatur

Citera om du vill ha svar.

Permalänk
Testpilot

Du har inte skrivit lika dant utan sorterar ditt resultat stigande (ASC) och kommer då alltid att få de lägsta poängen, vill du ha de högsta får du sortera fallande (DESC) som Eik skriver. Problemet ligger inte i din limit utan i sorteringen.

Visa signatur

Kolla gärna in min RGB-LED-ljusstake i galleriet
[Gigabyte GA-Z97MX-Gaming 5][Intel Core i5 4690K][Corsair XMS3 16GB][Asus GeForce RTX 2060 Super Dual Evo OC]

Permalänk
Medlem

Ok, då har jag tolkat en annan sak fel, att DESC ger max till min då det som det sorteras efter är REAL och från z till a(ok specialtecken först egentligen) om det som det sorteras efter är STRING.

Rätt är alltså:

SELECT * FROM tabell WHERE score => 7 ORDER BY score DESC LIMIT 500

Pinsamt att det var så lätt att åtgärda och att jag egentligen hade missuppfattat tolkningen av sorteringen och hur det hanteras efter att det plockats från databasen.

Visa signatur

Citera om du vill ha svar.

Permalänk
Hedersmedlem

Som referens:
DESC = descending = sjunkande, dvs varje värde är lägre (eller lika) mot det föregående. Högst först.
ASC = ascending = ökande, dvs varje värde är högre (eller lika) mot det föregående. Lägst först.

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
NAS: 6700K/16GB/Debian+ZFS | Backup (offsite): 9600K/16GB/Debian+ZFS

Permalänk
Medlem
Skrivet av hunden:

Du har inte skrivit lika dant utan sorterar ditt resultat stigande (ASC) och kommer då alltid att få de lägsta poängen, vill du ha de högsta får du sortera fallande (DESC) som Eik skriver. Problemet ligger inte i din limit utan i sorteringen.

Skrivet av Thomas:

Som referens:
DESC = descending = sjunkande, dvs varje värde är lägre (eller lika) mot det föregående. Högst först.
ASC = ascending = ökande, dvs varje värde är högre (eller lika) mot det föregående. Lägst först.

Jo visst, det säger ju sig själv, men av någon anledning behandlas siffror och strängar på olika sätt så att då det vid DESC sorterat på siffror blir från högsta till lägsta men vig sträng så blir det från första bokstaven still sista dvs "baklänges", så fungerar det iaf för mig, gör det inte det för andra har jag inte en aning om varför.

Visa signatur

Citera om du vill ha svar.