这个sql语句在做什么? (MySQL的)

时间:2009-08-04 02:15:51

标签: sql mysql

SET @row := 0;
SELECT * FROM (
SELECT @row := @row+1 AS rank, account_id, keyword, bid_amount ,timestamp
FROM bids WHERE keyword='programmers'
ORDER BY bid_amount DESC, timestamp ASC
) AS derived_table; 

我在某个地方看到了这个,我想知道这个集合与@符号以及:=

一起做了什么

感谢

1 个答案:

答案 0 :(得分:6)

它正在创建一个行号列。

@row是一个整数变量。 :=为每一行设置变量,将前一行的值设为@row。所以,你得到一个很好的增量列,告诉你你在哪一行。