Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.
Maar dan op een andere manier, niet het request voor de natural sort in C/C++.
Maar een discussie over de beste manier om natural sortering in de pricewatch te krijgen...
Jaaap: Zie ook mijn laatste reactie in dat devtrack draadje. Zo'n udf functie is leuk, maar niet voor ordering bruikbaar.
Ik begrijp niet helemaal waarom je met een UDF geen "ORDER BY tabelnaam achtige functies" kan doen.
[edit]
Moet er nu geen sterretje achter de topictitle?
[/edit]
Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.
Je kan er niet mee sorteren...Op maandag 25 februari 2002 21:57 schreef Jaaap het volgende:
Wow ACM je bent snel
Ik begrijp niet helemaal waarom je met een UDF geen "ORDER BY tabelnaam achtige functies" kan doen.
Je kan er niet de uiteindelijke volgorde van het resultaat mee bepalen. Tenminste, dat lees ik uit de beschrijving af
Als ik dit goed begrijp (ahum) dan ehh... zou het wel moeten kunnen?When using aggregate UDF functions MySQL works the following way:
1. Call xxx_init() to let the aggregate function allocate the memory it will need to store results.
2. Sort the table according to the GROUP BY expression.
3. For the first row in a new group, call the xxx_reset() function.
4. For each new row that belongs in the same group, call the xxx_add() function.
5. When the group changes or after the last row has been processed, call xxx() to get the result for the aggregate.
6. Repeat 3-5 until all rows has been processed
7. Call xxx_deinit() to let the UDF free any memory it has allocated.
Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.
De kern van het probleem (als je al een beetje weet over sorten) is het zoeken van numerieke karakters die op dezelfde positie beginnen.
neem twee strings:
1
2
| string1 = "Memory 32 MB bla"; string2 = "Memory 4 MB bla"; |
Een alphabetisch sort algoritme zou zeggen string1 < string2 (en dus -1 retourneren). Onze intuitie vindt echter 32 > 4 dus zou er 1 geretourneerd moeten worden.
Als we nu in string1 de positie van het eerste numerieke karakter opzoeken en beide strings in drieen splitten zodat
1
2
| string1a = "Memory "; string1b = "32"; string1c = " MB bla"; string2a = "Memory "; string2b = "4"; string2c = " MB bla"; |
En dan string1a alphabetisch comparen met string2a (die zijn gelijk) dan daarna string1b numeriek vergelijken met string2b (retourneert 1 want 32 > 4) dan retourneert onze functie dus 1.
Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.
Dan snap ik niet hoe je dat aan moet roepen...Op maandag 25 februari 2002 22:04 schreef Jaaap het volgende:
Als ik dit goed begrijp (ahum) dan ehh... zou het wel moeten kunnen?
Als voorbeeld geven zij SUM().
Het probleem is niet de natsort(die kun je zo ergens van internet halen), maar het probleem is of MySQL het wel aankan. Ik dacht dat dit misschien een oplossing was:Op maandag 25 februari 2002 22:21 schreef Jaaap een stuk over natsort:
1
2
3
| SELECT NATSORT(column) as temp FROM table ORDER BY temp |
NATSORT wordt nu per row één keer gecalled, maar hoe kan je sorteren als je maar één row elke keer hebt? Ook aggegrate functions werken niet, want die kunnen maar één waarde returnen. Ik denk dat je toch echt in de MySQL code moet gaan graven om dit op te lossen.
Uit volle borst op weg naar nergens / Zonder reden zonder doel
Met m'n zeden en m'n zonden / En mijn angstig voorgevoel
Laat mij mijn kont tegen de krib / Laat mij dit goddeloze lied
Hef jij je handen maar ten hemel / Maar red mij niet
Niet dus, dit is dus echt bedoeld voor functies die alle rows samen nemen om één return value te geven(zoals SUM()) dus. Om te sorteren heb je niet genoeg aan één return value.Op maandag 25 februari 2002 22:04 schreef Jaaap het volgende:
[..]
Als ik dit goed begrijp (ahum) dan ehh... zou het wel moeten kunnen?
Uit volle borst op weg naar nergens / Zonder reden zonder doel
Met m'n zeden en m'n zonden / En mijn angstig voorgevoel
Laat mij mijn kont tegen de krib / Laat mij dit goddeloze lied
Hef jij je handen maar ten hemel / Maar red mij niet