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

2 mysql sql

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; 
Run Code Online (Sandbox Code Playgroud)

我在某个地方看到了这个,我想知道这个集合与@符号和:=一起做了什么

谢谢

Eri*_*ric 6

它正在创建一个行号列.

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

  • @sarmenhbb仅用于输出的易读性.如果这返回300行的列表,您可以查看列表的中间并说"这是第150个最高的bid_amount",而不必自己计算行数. (2认同)