Reinhard: Abfrageproblem bei einer nicht sauber normalisierten Tabelle

Beitrag lesen

Hi Ilja,

für ein frisches bier mache ich alles.....

Liebend gerne...und ich trink auch selber eines mit *g*
Leider (oder in vielen anderen Fällen 'zum Glück') geht noch nicht alles virtuell :-(

Du brauchst zwei funktionen, die du geschickt einsetzen musst, nämlich REPLACE UND LENGTH. wie genau die funktionen heißen, hängt ein wenig von deinem DBMS ab. aber schau dir mal folgendes an....

Ich benutze mysql, Version 5

LENGTH(user) - LENGTH(REPLACE(user, ',', '')) + 1

Aah, jetzt fällt der Groschen, aber ich hab zugegebenerweise schon etwas dafür gebraucht ;-)

Du versuchst über die Differenz des Gesamttextes und des um die kommata verkürzten Gesamttextes an die Anzahl der Kommata zu kommen und hast folglich einen Namen mehr im Feld als Du kommatas hast, deshalb die Addition mit 1.

Ok, den Trick habe ich verstanden, aber die Umsetzung in mywsql-Sprache fällt mir trotzdem noch etwas schwer. Vielleicht aber auch, weil ich inzwischen nach etlichen Stunden Code schreiben "gefühlt" nur noch Spagetti im Kopf habe ;-)

Ich versuch mal:

SELECT  
SUM(  
(LENGTH(User) - LENGTH(REPLACE(User, ',', '' ))+1)  
*Punkte)  
FROM Tabelle

Ist das so richtig?

Gruß, Reinhard