phpbar.de logo

Mailinglisten-Archive

Sortierung im varchar-feld

Sortierung im varchar-feld

henry bayer henry_bayer at gmx.de
Die Jul 15 16:47:13 CEST 2003


hej,

>Ich habe eine Tabelle mit einem varchar-Feld, in dem lauter Ziffern
>durch '.' (Punkt) getrennt sind z.B.
>field1          field2
>0               10.4
> ...
>also aufsteigend nach der Ziffer hinter dem Punkt und anschließend nach
>der Ziffer vor dem Punkt sortiert.
>Geht das, oder muß ich das umbauen und 'field2' in zwei felder splitten,
>damit ich diese Sortierung hinbekomme?

nein, das geht mit SUBSTRING

SELET substring(field2,3) AS f2sort FROM tbl ORDER BY f2sort

vorausgesetz, vor dem punkt sind immer 2 stellen.

aber selbst dann ginges es, bsp. bei 10er und auch 100er, weil dann fügst du
LPAD mit ein:

SELECT substring(lpad(field2,5,'0'),4) AS f2sort FROM tbl ORDER BY f2sort

hier wieder vorausgesetzt, hinter dem punkt nur eine stelle :-)

je nach dem, wie die werte erzeugt werden, kannst du natürlich die felder
auch trennen und bei bedarf mit CONCAT zusammenfügen, notwendig ist das aber
nicht und die performance leidet je nach dem auch nicht bei arbeiten mit
substring/lpad

henry

-- 
+++ GMX - Mail, Messaging & more  http://www.gmx.net +++
Bitte lächeln! Fotogalerie online mit GMX ohne eigene Homepage!

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive