Order by

Order by

am 31.05.2007 10:22:56 von Ulrich Albrecht

Hallo,

irgendwie habe ich jetzt erst entdeckt, dass phpMyAdmin zum Sortieren
statt

select * from foo order by bar

folgendes benutzt:

select * from foo order by 'foo'.'bar'

Ist letztes "richtiger"?

Danke,
Uli

Re: Order by

am 31.05.2007 11:02:17 von Kai Ruhnau

Ulrich Albrecht schrieb:
> irgendwie habe ich jetzt erst entdeckt, dass phpMyAdmin zum Sortieren statt
>
> select * from foo order by bar
>
> folgendes benutzt:
>
> select * from foo order by 'foo'.'bar'

Das glaube ich nicht, denn

> Ist letztes "richtiger"?

es erzeugt einen Syntaxfehler.

Grüße
Kai

Re: Order by

am 31.05.2007 11:11:51 von Claus Reibenstein

Ulrich Albrecht schrieb:

> irgendwie habe ich jetzt erst entdeckt, dass phpMyAdmin zum Sortieren
> statt
>
> select * from foo order by bar
>
> folgendes benutzt:
>
> select * from foo order by 'foo'.'bar'

Wohl eher

select * from foo order by `foo`.`bar`

> Ist letztes "richtiger"?

So lange der Spaltenname eindeutig ist - und das ist er, wenn nur eine
Tabelle in der Abfrage vorkommt, braucht man den Tabellennamen nicht mit
anzugeben, und so lange Tabellen- und/oder Spaltenname keinem
reservierten Schlüsselwort entsprechen, kann man auch die Backticks
weglassen. Hochkommas sind jedoch in jedem Fall falsch.

Gruß. Claus

Re: Order by

am 31.05.2007 12:12:45 von Ulrich Albrecht

> Hochkommas sind jedoch in jedem Fall falsch.

Mmh ... was zeigt denn phphMyAdmin 2.9.2 oben dann immer an, wenn ich
eine Spalte sortiere? Da sind Hochkommas drin.

Uli

Re: Order by

am 31.05.2007 17:49:54 von Thomas Rachel

Ulrich Albrecht wrote:

>> Hochkommas sind jedoch in jedem Fall falsch.
>
> Mmh ... was zeigt denn phphMyAdmin 2.9.2 oben dann immer an, wenn ich
> eine Spalte sortiere?

Wie Claus schon schrieb: Backticks (`).

> Da sind Hochkommas drin.

Mit Sicherheit sind da keine Hochkommata (') drin, sondern eben - wie
gesagt - Backticks (`). Den Unterschied erklärt das Handbuch.

Kurz gesagt:

` Backticks trennen Tabellen- und Spaltennamen ab, wenn dort ein
Leerzeichen oder sonst ein hinterhältiges Zeichen drinsteckt.

' Hochkommata trennen Stringliterale ab, also Dateninhalte.


HTH,

Thomas

Re: Order by

am 31.05.2007 19:08:27 von Ulrich Albrecht

> ` Backticks trennen Tabellen- und Spaltennamen ab.
> ' Hochkommata trennen Stringliterale ab, also Dateninhalte.
>
>
> HTH,

Tut es. Danke.

Uli