php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.04.2005, 11:46  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard SELECT tbl.col AS a ORDER BY tbl.a versionsabhängig?

hi, heute morgen hab ich ein böses problem, und ich weiß zwar, wie ich es umgehen muss, aber ich find keine stelle in der dokumentation, die mir das hier nicht erlaubt.
Code:
SELECT table_name.col_name AS some_alias 
  ORDER BY table_name.some_alias
diese abfrage funktioniert genau so auf einem mysql 3.23, auf meinem lokalen mysql 4.0.23, aber die abfrage schlägt fehl mit "unknown column 'some_alias' in ORDER BY clause" unter mysql 4.1.9 ...

das einzige was ich hier gefunden habe ist http://dev.mysql.com/doc/mysql/en/select.html ... was ich allerdings nicht finde ist irgend eine stelle die mir sagt warum das ganze verboten sein soll oder verboten ist.

der workaround ist klar:
Code:
SELECT table_name.col_name AS some_alias 
  ORDER BY table_name.col_name
trotzdem möchte ich wissen, seit wann und warum die erste variante nicht (mehr) möglich ist...
axo ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.04.2005, 12:20  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.654
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo,

Das ist ganz einfach: Das ALIAS some_alias ist für die Tabelle table_name nicht definiert. Es müsste lauten:
Code:
SELECT table_name.col_name AS some_alias 
  ORDER BY some_alias[ASC|DESC|]
Grüße,
christian
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 15.04.2005, 12:53  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

naja, danke für die antwort, aber das weiß ich ja schon.
ich kann ja das problem bereits lösen. die möglichkeit, die du gepostet hast, hab ich nicht nochmal explizit genannt, weil sie eh schon genau so auf der manual-seite steht, die ich gepostet habe. die frage ist eher, warum meine 'problem-anfrage' bis zu mysql4.0.x noch geht, ab mysql4.1.x aber nicht mehr ...
axo ist offline   Mit Zitat antworten
Alt 15.04.2005, 15:50  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ok, ich hab eine antwort von einem kollegen bekommen. für die die's interessiert:

die abfrage wie ich sie gestellt habe funktioniert ab mysql4.1x deswegen nicht mehr, weil der mysql-interne sortier-algorithmus verändert wurde.

vor mysql 4.0.23 wurden die result-sets einer abfrage erst in den buffer gelesen und erst danach sortiert - also nachdem alle ergebniskandidaten gefunden wurden.
vorteil:
- einfache implementierung
nachteil:
- langsamer algorithmus bei tausenden von datensätzen.

nach 4.1x wurde der algorithmus verändert, so dass beim ermitteln der ergebnismengen die result-sets gleich sortiert eingefügt werden:
vorteil:
- schnellere sortierung und schnellere response
nachteil:
- meine abfrage ist nicht mehr gültig, weil die 'alias'-spalte zur sortierzeit so noch nicht zur verfügung steht.

ergebnis:
- abfragen so nicht verwenden.
- merken.

danke an alle, die sich gedanken darüber gemacht haben.
axo ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Kein Ergebnis bei SELECT (MySQL 4.1.9) dr.e. Datenbanken 4 15.06.2008 19:54
ORDER BY im Subquery cycap Datenbanken 12 31.10.2007 20:31
[JavaScript] Event Handler in form select - Syntax? winfo_cologne HTML, Usability und Barrierefreiheit 5 29.03.2006 16:47
[Erledigt] Select Statement - Order by Problem mit Datentypen Datenbanken 6 03.06.2005 16:02
[Erledigt] SELECT: ORDER BY funktioniert nicht Datenbanken 7 19.05.2005 14:34
Syntaxfehler, wohin kommt ORDER BY PHP Tipps 2005 7 12.02.2005 13:21
Select FROM tabelle ORDER BY id LIMIT 1,10 funkt nicht richt juhuwoorps Datenbanken 6 12.09.2004 14:02
[Erledigt] 2 mal select 1 form PHP-Fortgeschrittene 1 01.09.2004 20:13
Select mit Order By ... andrew22 Datenbanken 8 29.07.2004 12:55

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
select in order by clause, tbl in php?, order by as, mysql tbl.col, order tbl., select as a and, select a. from tbl a, php order by (select, select by col, select tbl, select \as a order by\, select tbl.column(3), select as a, mysql 4.0.23 select limit order, mysql \select as\ order

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:37 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.