背景说明:比如按班级分数排序后,同时获取名次,排序前是没有名次的。
使用用户变量语法,@变量名:如 @name
可以先在用户变量中保存值然后在以后引用它;这样可以将值从一个语句传递到另一个语句。用户变量与连接有关。也就是说,一个客户端定义的变量不能被其它客户端看到或使用。当客户端退出时,该客户端连接的所有变量将自动释放。
直接sql实例
sql如下,说明: rowid 不是关键字,是一个自定义变量名,from后必须对其别名
SELECT
@rowid :=@rowid + 1 orderno,
k.user_id
FROM
USER k,
(SELECT(@rowid := 0)) a
ORDER BY
k.score DESC;
结果:如此便类似下标或者行号的功能了