请大家帮我解释一下这个mysql语句是什么意思呢

SELECT DISTINCT
@r AS _id,
(SELECT @r := pid FROM sys_resource WHERE id = _id) AS pid
FROM
(SELECT @r := '8a2c25fe-1dfd-4875-b417-2b99e8bff624') vars,
sys_resource
WHERE @r IS not NULL

    DROP TABLE IF EXISTS `sys_resource`;

CREATE TABLE sys_resource (
id varchar(100) NOT NULL,
name varchar(50) DEFAULT NULL COMMENT '资源名称',
type varchar(20) DEFAULT NULL COMMENT '资源类型',
priority int(11) DEFAULT NULL COMMENT '显示顺序',
pid varchar(100) DEFAULT NULL COMMENT '父id',
permission varchar(255) DEFAULT NULL COMMENT '权限字符串',
status varchar(20) DEFAULT NULL COMMENT '是否有效',
url varchar(255) DEFAULT NULL,
art_type varchar(255) DEFAULT NULL,
pic varchar(255) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统资源表';

谢谢大家的回答,但是都没有说到根本的问题。那个迭代的查询语句实在是无法理解。

重建sys_resource表的语句。

通过传入的id向上查出父id,然后一级一级查找出所有数据
DROP TABLE IF EXISTS sys_resource;删除存在的sys_resource表
新建sys_resource表,id varchar(100) NOT NULL,字段名id,varchar类型,长度100,不为空
COMMENT '资源名称' 中文标识,DEFAULT NULL默认允许空
PRIMARY KEY (id) 标识主键
ENGINE=InnoDB 设置引擎
DEFAULT CHARSET=utf8 默认字符utf8

http://www.dewen.net.cn/q/5904,这里有一个相同的东西