concat und sortieren funktioniert nicht

killefid rai

Grünschnabel
Hallo zusammen,

ich habe zwei Spalten mit concat zusammengefügt. Die Anzeige funktioniert richtig. Nun möchte ich nach dieser zusammengefügter Spalte sortieren. Warum funktioniert das nicht?

Code:
select concat(ifnull(pd2.products_name, ''), ' ', ifnull(pd1.products_name, '')) as name, pd1.products_id, p.products_price, p.products_tax_class_id, p.products_status from " . TABLE_PRODUCTS_DESCRIPTION . " pd1, " . TABLE_PRODUCTS . " p LEFT OUTER JOIN " . TABLE_PRODUCTS_DESCRIPTION . " pd2 ON (pd2.products_id = p.master_id) where (p.products_id = pd1.products_id and pd1.language_id = '" . $languages_id . "') and p.products_status = '1' and ((pd1.products_name like '%" . $HTTP_GET_VARS['search'] . "%') OR (pd2.products_name like '%" . $HTTP_GET_VARS['search'] . "%')) order by name ASC"

Auch wenn ich statt dem Alias namen "name" die komplette concat Anweisung angebe klappt es nicht. Hat da jemand eine Idee?

Rainer
 
Hmm, warum das nich geht, weiß ich jetzt auch nich wirklich. Gibt es denn eine Fehlermeldung, vielleicht wäre die hilfreich

Sonst kanst Du doch auch einfach so sortieren, dürfte ja denselben Effekt haben:
PHP:
ORDER BY pd2.products_name, pd1.products_name
 
Hallo Ralph,

Fehlermeldung habe ich leider (zum Glück) keine. Es wird nur falsch sortiert.
Zur Verdeutlichung:

Tabelle1:
ALPHA
BETA
GAMMA
DELTA

Tabelle2:
apfel
birne

Die Werte der Tabellen 1 und 2 habe ich mit concat zusammengeklebt, sodaß vor einigen Werten von 1 Werte von 2 vorangestellt wird.

Sortiert wird dann leider nicht so:
ALPHA
apfel BETA
birne DELTA
GAMMA

sondern:
ALPHA
BETA
GAMMA
DELTA
apfel BETA
birne DELTA

Das sollte doch irgendwie anders gehen...

Gruß
Rainer
 
Also is das erste Kriterium für die Sortierung die Tabelle 1? Dann tausch das doch in dem Order by
PHP:
ORDER BY pd1.products_name, pd2.products_name

wenn das auch nich die Lösung ist... dann weiß ich im moment auch keine :)
 
Sch... Mann, Bockmist gebaut, einfach zu blöde gewesen. Könnte mich in den Ar... treten. Hat mich nun zwei Tage gekostet. Ich kauf mir einen Strick. So viel Blödheit geht auf keine Kuhhaut. Mann, mann, mann, ich glaube ich überlass das doch besser Leuten die Ahnung davon haben.

Ich habe mit concat zwei felder zusammen"geklebt". Damit das in der Ausgabe auch anständig aussieht natürlich mit so einem verfluchten Leerzeichen dazwischen...

Das wird halt nur angezeigt, wenn das erste Feld nicht leer ist. deshalb konnte man es nicht sehen und ich such mir einen Wolf.

Das erste drittel aus der Google Datenbank kenn ich jetzt auswendig. Vielleicht nützt es mir ja mal irgendwann...

THANX 4 ALL ich geh jetzt saufen

Rainer
 
Zurück