MySQL - 数据查询树?

标签 mysql sql tree hierarchical-data

我在 MySQL 数据库中有一个这样的数据集,但大约有 50,000 多条记录。

A01                   Description
A01.01                Description
A01.02                Description
A01.03                Description
A01.03.01             Description
A01.03.02             Description
A01.03.02.01          Description
A01.03.03             Description
A02                   ....
A02.01
A03
B01
B02
B02.02
B02.03
...

我想做一个查询,我可以传递类似“A”的东西,它让我得到所有的 child ,但只有一层深,所以我得到 A01、A02、A03,但我还需要知道 A01和 A02 有 child ,而 A03 没有。

我需要重复传递“A01.03”的查询以获取 A01.03 的子项并知道 A01.03.02 有子项但其他没有。

我有一个包含大约 50,000 多个这样的数据库,需要按需高效地查询它。如果需要,我可能会稍微更改结构或添加标志。

任何提示或想法将不胜感激!谢谢!

最佳答案

如果我没理解错的话,你可以这样做:

select substring_index(t.col1, '.', 1),
       ( count(*) > 1 ) as has_children
from t
where t.col1 like 'A%'
group by substring_index(t.col1, '.', 1);

关于MySQL - 数据查询树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49352102/

相关文章:

PHP - mysqli_query 计数始终返回 1

php - 使用 for 循环将数组插入 SQL

sql - 在SQL Server中查找第100条、200条等记录

mysql - 慢速依赖子查询的问题

限制来自一个表的行的 SQL 查询,而不是结果集

java - 如何在 Java 中从 xsd 创建对象树?

java - 在递归通用数据结构中对对象进行排序

c# - 一次保存多个实体

php - 检索与特定 GPS 坐标 + 距离匹配的项目

Ruby Heapify 实现/优化