为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:麒麟
【CPU】:
【问题描述】*:mysql中有变量@语法,到达梦中如何兼容,
下面试具体的sql样例
获取自己所有父级id按照level排序(不包含自己)
SELECT group_concat(id ORDER BY level asc)
FROM (SELECT @r AS _id,
(SELECT @r := parent_id FROM tbl_government_resource WHERE id = _id) AS parent_id,
@l := @l + 1 AS lvl
FROM (SELECT @r := 463, @l := 0) vars,
tbl_government_resource h
WHERE @r != 0) T1
JOIN tbl_government_resource T2
ON T1._id = T2.id
where id != 463;
问题:达梦是否支持@写法 或者替换成何种语法?
达梦不支持在sql语句中定义变量,只能在语句块或存储过程中定义变量,如果是要实现递归的功能,建议试试 start with connect by的方式
设置 MS_PARSE_PERMIT=1,然后重启数据库生效后,可以通过 @ 定义 session 级别变量。