infomix数据库版本sql_查询 informix数据库版本

对于MySQL 8+:使用递归with语法。 对于MySQL 5.x:使用内联变量,路径ID或自联接。

MySQL 8+ with recursive cte (id, name, parent_id) as ( select id, name, parent_id from products where parent_id = 19 union all select p.id, p.name, p.parent_id from products p inner join cte on p.parent_id = cte.id ) select * from cte; 中指定的值parent_id = 19应设置为id您要选择其所有后代的父级的。

MySQL 5.x 对于不支持通用表表达式的MySQL版本(最高5.7版),您可以通过以下查询来实现:

select id, name, parent_id from (select * from products order by parent_id, id) products_sorted, (select @pv := '19') initialisation where find_in_set(parent_id, @pv) and length(@pv := concat(@pv, ',', id)) 这是一个小提琴。

在此,@pv := '19'应将中指定的值设置为id要选择其所有后代的父级的值。

如果父母有多个孩子,这也将起作用。但是,要求每个记录都满足条件parent_id < id,否则结果将不完整。

查询中的变量分配 该查询使用特定的MySQL语法:在执行过程中分配和修改变量。对执行顺序进行了一些假设:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值