IFNULL(expr1,expr2) 

   expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2


select  p_name,p_type,p_view, IFNULL(@rownum:=@rownum+1,@rownum:=1)  from products a    ORDER BY p_view desc 


问题又来了,第二次运行 @rownum不是从1开始的



select  p_name,p_type,p_view,@rownum:=@rownum+1 

     from products a,(select @rownum:=0) b    ORDER BY p_view desc