webForumDet fria alternativet

Välja loop ordningen?

Databaser & SQL

12 svar · 385 visningar · startad av pRob3

Medlem sedan maj 2003151 inlägg
Frågan#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. ;)

Medlem sedan feb. 20011 198 inlägg
#2

ORDER BY typ desc

Medlem sedan dec. 20003 887 inlägg
#3

Vad är det för logik i sorteringen?

Medlem sedan maj 2003151 inlägg
#4

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

Medlem sedan juni 200032 967 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.

Medlem sedan juli 2003465 inlägg
#6

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

Medlem sedan dec. 19996 721 inlägg
Medlem 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) + ',')"
Medlem 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),','))
Medlem 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

Medlem 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
Medlem sedan dec. 19996 721 inlägg
#12

Sehr geschmutt!

Medlem sedan maj 2003151 inlägg
#13

Funkar kanon tackar så mycket allihopa. :)

257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)