webForumDet fria alternativet

Välja loop ordningen?

12 svar · 385 visningar · startad av pRob3

pRob3Medlem sedan maj 2003151 inlägg
#1

Jag har några kolumn fält som har dessa värden: 1, 2, 3 och 4

Kan man på något sätt välja i SQL-satsen vilken ordning fälten ska loopas ut via via fält värdet i kolumnen?
Jag vill alltså inte att dom loopas ut i ordningen 1 2 3 4 utan utan att dom loopas ut som 3 2 4 1.

Använder en MySQL databas och kolumnen är av typen Int.

Nuvarande kod: (loopar ut 1234)

Set Rs = Connect.Execute("SELECT DISTINCT * FROM fragor ORDER BY typ")

Do Until Rs.EOF
'osv

Hoppas ni förstår hur jag menar är lite trött. ;)

yohpopsMedlem sedan feb. 20011 198 inlägg
#2

ORDER BY typ desc

Engine^Medlem sedan dec. 20003 887 inlägg
#3

Vad är det för logik i sorteringen?

pRob3Medlem sedan maj 2003151 inlägg
#4

Det är ingen logik i sorteringen jag hoppades att man kunde fixa en logik i SQL-satsen.

@ndersMedlem sedan juni 200032 969 inlägg
#5

Det måste väl ändå finnas en logik i den ordningen siffrorna i ditt exempel kommer?

- - -

Prova sökfunktionen på wF så hittar du exempel på önskad sortering.

GlitterMedlem sedan juli 2003465 inlägg
#6

Vill du få dem i den ordningen som de har blivigt inskrivna?

emissionMedlem sedan dec. 19996 721 inlägg
pRob3Medlem sedan maj 2003151 inlägg
#8

Testade den koden på den sidan emission men får detta felmeddelande:

Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'

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 '(typ) + ',')' at line 1

SQL-satsen

"SELECT DISTINCT * FROM fragor WHERE typ IN (3,2,4) ORDER by instr(',3,2,4,',',' + cstr(typ) + ',')"
emissionMedlem sedan dec. 19996 721 inlägg
#9

Ok, det var MySQL...Gissar att det kan funka så här...

SELECT DISTINCT * FROM fragor WHERE typ IN (3,2,4) ORDER by INSTR(',3,2,4,',CONCAT(',',CAST(typ as varchar),','))
pRob3Medlem sedan maj 2003151 inlägg
#10

Yepp kör med MySQL och använder jag den koden får jag detta felmeddelande:

Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'

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 'varchar),','))' at line 1

LarsGMedlem sedan dec. 200012 464 inlägg
#11
SELECT DISTINCT * 
FROM fragor 
WHERE typ IN (3,2,4) 
ORDER by case typ
when 3 then 1
when 2 then 2
when 4 then 3 end
emissionMedlem sedan dec. 19996 721 inlägg
#12

Sehr geschmutt!

pRob3Medlem sedan maj 2003151 inlägg
#13

Funkar kanon tackar så mycket allihopa. :)

137 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)