Felder sortieren

Felder sortieren

am 02.07.2006 02:19:09 von Oliver Erdelt

Hi,

Wie kann ich Felder einer Tabelle sortieren?
Ich habe in einer Tabelle ein Indexfeld hinzugefügt, jetzt steht es aber
leider ganz unten. Ich hätte aber gerne das alle Indexfelder ganz oben
stehen. In dem Tool "MySQL Administrator" finde ich keine Option
diesbezüglich.

MfG
Olli

Re: Felder sortieren

am 02.07.2006 09:28:41 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Felder sortieren

am 02.07.2006 09:31:09 von Norbert Melzer

Andreas Kretschmer schrieb:
> begin Oliver Erdelt wrote:
>> Hi,
>=20
>> Wie kann ich Felder einer Tabelle sortieren?
>=20
> Mal ein Bleistift:
> select foo, bar from batz order by foo, bar desc;

Ich denke nicht das er das will...
Ich verstehe das eher so, daß er aus

Text, Kommentar, Beispiel, Index

dieses hier machen möchte:

Index, Text, Kommentar, Beispiel

Und die Spalten werden in der Reihenfolge "ausgegeben" wie man sie im
SELECT anfordert.
Ob man sie mit dem Admin oder QueryBrowser irgendwie umsortieren kann,
weiß ich nicht, nutze beide nicht.
Oder aber es bleibt noch eine möglichkeit: Tabelle löschen und die
Spalten in der richtigen Reihenfolge erzeugen.

HTH
Norbert

Re: Felder sortieren

am 02.07.2006 11:44:44 von Johannes Vogel

Hi Oliver

Oliver Erdelt wrote:
> Wie kann ich Felder einer Tabelle sortieren?
> Ich habe in einer Tabelle ein Indexfeld hinzugefügt, jetzt steht es aber
> leider ganz unten. Ich hätte aber gerne das alle Indexfelder ganz oben
> stehen. In dem Tool "MySQL Administrator" finde ich keine Option
> diesbezüglich.

Die DB-Theorie besagt, dass die Reihenfolge der Attribute einer Entität
keine Rolle spielt. Trotzdem ist es sinnvoll, auf die Reihenfolge zu
achten, um damit auch Ordnung in den Tabellen zu haben.

MySQL übernimmt die Reihenfolge aus dem create table heraus. Nur weil du
einen Index dazu erstellst, wird diese nicht verändert. Falls du
nachträglich die Reihenfolge ändern möchtest, kannst du ein
Temporär-Feld an der gewünschten Stelle mit den korrekten Auszeichnungen
erstellen (alter table

add tmp ...), die Daten dann
reinverschieben (update
set tmp = oldAttr), das alte Attribut
löschen (alter table
drop oldAttr) und das temporär angelegte
Attribut umbenennen (alter table
change tmp oldAttr ...). Ja,
ist etwas umständlich, das macht man aber auch nicht alle Tage.

Wie du's aber in FrontEnds machst, weiss auch ich nicht. Die benutzt ja
niemand. Schliesslich gibt's ein command line tool. :-)

HTH, Johannes

Re: Felder sortieren

am 02.07.2006 22:07:49 von Oliver Erdelt

Hi,

>>> Wie kann ich Felder einer Tabelle sortieren?
>> Mal ein Bleistift:
>> select foo, bar from batz order by foo, bar desc;
>
> Ich denke nicht das er das will...
> Ich verstehe das eher so, daß er aus
>
> Text, Kommentar, Beispiel, Index
>
> dieses hier machen möchte:
>
> Index, Text, Kommentar, Beispiel
>
> Und die Spalten werden in der Reihenfolge "ausgegeben" wie man sie im
> SELECT anfordert.
> Ob man sie mit dem Admin oder QueryBrowser irgendwie umsortieren kann,
> weiß ich nicht, nutze beide nicht.
> Oder aber es bleibt noch eine möglichkeit: Tabelle löschen und die
> Spalten in der richtigen Reihenfolge erzeugen.

Was benutzt du denn wenn ich mal fragen darf, und geht das mit deinem Tool?

MfG
Olli

Re: Felder sortieren

am 03.07.2006 11:17:04 von Sibylle Koczian

Johannes Vogel schrieb:
>=20
> MySQL übernimmt die Reihenfolge aus dem create table heraus. Nur weil=
du
> einen Index dazu erstellst, wird diese nicht verändert. Falls du
> nachträglich die Reihenfolge ändern möchtest, kannst du ein
> Temporär-Feld an der gewünschten Stelle mit den korrekten Auszeichn=
ungen
> erstellen (alter table

add tmp ...), die Daten dann
> reinverschieben (update
set tmp =3D oldAttr), das alte Attribut=

> löschen (alter table
drop oldAttr) und das temporär angeleg=
te
> Attribut umbenennen (alter table
change tmp oldAttr ...). Ja,
> ist etwas umständlich, das macht man aber auch nicht alle Tage.
>=20

Ich glaube nicht einmal, dass man das so umständlich machen muss, m.E.
kennt "alter table
change ... " die nötigen Optionen, um ein
Feld in einem Schritt zu verschieben. Habe nur im Augenblick gar keine
Zeit, selber in die Dokumentation hineinzuschauen.

Grüße,
Koczian

--=20
Dr. Sibylle Koczian
Universitaetsbibliothek, Abt. Naturwiss.
D-86135 Augsburg
e-mail : Sibylle.Koczian@Bibliothek.Uni-Augsburg.DE

Re: Felder sortieren

am 03.07.2006 13:01:21 von Johannes Vogel

Hi Sibylle

Sibylle Koczian wrote:
> Johannes Vogel schrieb:
>> MySQL übernimmt die Reihenfolge aus dem create table heraus. Nur weil du
>> einen Index dazu erstellst, wird diese nicht verändert. Falls du
>> nachträglich die Reihenfolge ändern möchtest, kannst du ein
>> Temporär-Feld an der gewünschten Stelle mit den korrekten Auszeichnungen
>> erstellen (alter table

add tmp ...), die Daten dann
>> reinverschieben (update
set tmp = oldAttr), das alte Attribut
>> löschen (alter table
drop oldAttr) und das temporär angelegte
>> Attribut umbenennen (alter table
change tmp oldAttr ...). Ja,
>> ist etwas umständlich, das macht man aber auch nicht alle Tage.
> Ich glaube nicht einmal, dass man das so umständlich machen muss, m.E.
> kennt "alter table
change ... " die nötigen Optionen, um ein
> Feld in einem Schritt zu verschieben. Habe nur im Augenblick gar keine
> Zeit, selber in die Dokumentation hineinzuschauen.

Stimmt.

> ALTER [IGNORE] TABLE tbl_name
> alter_specification [, alter_specification] ...
> CHANGE [COLUMN] old_col_name column_definition
> [FIRST|AFTER col_name]

Johannes

Re: Felder sortieren

am 03.07.2006 14:26:54 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: Felder sortieren

am 09.07.2006 12:42:40 von Norbert Melzer

Oliver Erdelt schrieb:
> Hi,
>=20
>>>> Wie kann ich Felder einer Tabelle sortieren?
>>> Mal ein Bleistift:
>>> select foo, bar from batz order by foo, bar desc;
>> Ich denke nicht das er das will...
>> Ich verstehe das eher so, daß er aus
>>
>> Text, Kommentar, Beispiel, Index
>>
>> dieses hier machen möchte:
>>
>> Index, Text, Kommentar, Beispiel
>>
>> Und die Spalten werden in der Reihenfolge "ausgegeben" wie man sie im
>> SELECT anfordert.
>> Ob man sie mit dem Admin oder QueryBrowser irgendwie umsortieren kann,=

>> weiß ich nicht, nutze beide nicht.
>> Oder aber es bleibt noch eine möglichkeit: Tabelle löschen und die=

>> Spalten in der richtigen Reihenfolge erzeugen.
>=20
> Was benutzt du denn wenn ich mal fragen darf, und geht das mit deinem T=
ool?

Ich benutze wie Andreas bereits richtig vermutete den
Command-Line-Client zum testen einzelner Statements oder wenn es um
reine mySQL fragen zB hier in der Gruppe geht.
Ansonsten schreibe ich meine Apllikationen in PHP, was aber hier
offtopic ist.

Da bist Du mit Deinem mysql-Admin gedöhns schon eher richtig, aber ich
lege auf solche Klicki-Buntis nicht viel Wert.

Re: Felder sortieren

am 09.07.2006 13:39:38 von Oliver Erdelt

Hi,

[...]
>> ALTER [IGNORE] TABLE tbl_name
>> alter_specification [, alter_specification] ...
>> CHANGE [COLUMN] old_col_name column_definition
>> [FIRST|AFTER col_name]

Ah jo, hab's in der Doku gefunden, danke für die Hilfe.
Dachte nicht das man sowas auch per SQL lösen kann.

MfG
Olli