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