Mysql定义变量实现(按某个字段值)排名
1、eg:
SELECT u.rank
FROM
(
SELECT zc.fk_user_id,es.shop_type,(@ranknum:=@ranknum+1) AS rank
FROM zsm_credit zc
LEFT JOIN es_shop es ON zc.fk_user_id = es.user_id ,
(SELECT (@ranknum :=0) ) b
ORDER BY total DESC
)u
WHERE u.fk_user_id='1' AND u.shop_type=1
2、mysql在sql中定义变量的方式
set @a = 1;set @a: = 1; select @num:=value;
3、利用变量赋值
set @name = '';
select @name:=password from user limit 0,1;#从数据表中获取一条记录password字段的值给@name变量。在执行后输出到查询结果集上面。
对用户变量赋值有两种方式,一种是直接用”=”号,另一种是用”:=”号。其区别在于使用set命令对用户变量进行赋值时,两种方式都可以使用;当使用select语句对用户变量进行赋值时,只能使用”:=”方式,因为在select语句中,”=”号declare语句专门用于定义局部变量。set语句是设置不同类型的变量,包括会话变量和全局变量。
关注公众号,回复c+兴趣的东西 24小时内即可领取学习。2T资料任君挑选!
春有百花秋有月,夏有凉风冬有雪!