mysql數據庫查詢如何添加排名序號

mysql中排序後根據排序的內容顯示序號,需要在子查詢中select @rownum:=0,只有外層的@rownum並不會起作用。

SELECT
	a.num,
	a.content,
	t.tagname,
	@rownum := @rownum + 1 AS sortorder 
FROM
	( SELECT count( * ) AS num, content, @rownum := 0 FROM action WHERE actiontype = 'tag' GROUP BY content ) a
	LEFT JOIN tag t ON a.content = t.tagid 
ORDER BY
	a.num DESC 
	LIMIT 10;

在沒有子查詢的情況下,可以在外面包一層查詢。

SELECT
	n.*,
	@rownum := @rownum + 1 AS sortorder 
FROM
	(
	SELECT
		COUNT( * ) AS num,
		vendor 
	FROM
		device 
	WHERE
		LENGTH( vendor ) > 0 
	GROUP BY
		vendor 
	ORDER BY
		num DESC 
		LIMIT 10 
	) n,
	( SELECT @rownum := 0 ) r;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章