MySQL的if既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用:
IF(expr1,expr2,expr3)
如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。
SELECT
activity_id,
open_id,
rank
FROM
(
SELECT
sg_win.*,
IF( @id = activity_id, @rows := @rows + 1, @rows := 1 ) AS rank ,
@id:=activity_id
FROM sg_win,(select @id=null,@rows=0) r ORDER BY open_id
) s
查询出来的数据为
借鉴地址:https://www.cnblogs.com/niniya/p/9046449.html