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语句是设置不同类型的变量,包括会话变量和全局变量。
    

猜你喜欢

转载自www.cnblogs.com/wwwcf1982603555/p/9045872.html
今日推荐