[MySQL] Position ermitteln

Hi,

du hast im forum bewerten +/- buttons unter einem beitrag.

dort findest du auch "danke". ich zumindestens halte es immer so, dass ich eine von beiden funktionen nutze, wenn mir jemand im forum geholfen hat.

grüße
gore
 
Achso, logisch. Das mache ich immer, wenn mir hier geholfen wird, was immer mal wieder vorkommt, weil man an seine Grenzen stößt.

Danke und Bewertung usw. kommt sofort. :)
 
Hallo,

ich habe folgendes ausprobiert. Allerdings erhalte ich genau die umgekehrte Reihenfolge. Alsoo was 1 sein soll ist der letzte Platz und umgekehrt

Code:
SELECT 
						data.position
					FROM
    					(
						SELECT
        					@rownum:=@rownum+1 AS position,
        					statistic.* 
    					FROM
        					(
							SELECT 
								COUNT(votingpoints) AS anzahl, 
								USERID 
							FROM 
								".V4M_PRODUKTTOUSER."  
							GROUP BY 
								USERID 
							) AS statistic,
        					(
							SELECT 
								@rownum:=0
							) AS  vars
    					ORDER BY 
							statistic.anzahl DESC
						) AS data
					WHERE 
						USERID = '".$USERID."'
 
das liegt daran, dass der datenbankserver erst den verbund zwischen statistic und vars macht und danach sortiert.

ich würde einfach mal statistic-query noch mal nesten und im äusseren query dann das order by machen
 
ungefähr so:

Code:
SELECT 
						data.position
					FROM
    					(
						SELECT
        					@rownum:=@rownum+1 AS position,
        					statistic.* 
    					FROM
        					(
                                                     SELECT *
                                                        FROM (
							SELECT 
								COUNT(votingpoints) AS anzahl, 
								USERID 
							FROM 
								".V4M_PRODUKTTOUSER."  
							GROUP BY 
								USERID 
							) X
                                                          ORDER BY anzahl DESC)AS statistic,
        					(
							SELECT 
								@rownum:=0
							) AS  vars
						) AS data
					WHERE 
						USERID = '".$USERID."'
 
Zurück