android - 在sqlite中以树结构从数据库中获取数据

标签 android mysql sql database sqlite

在我的应用程序中,我有一个树结构表,我想知道是否可以通过简单地应用单个查询从 sqlite 数据库中获取树结构数据。目前我正在使用 for 循环手动删除它并能够满足我的要求,但我对这种方法不满意,因为它更复杂,可能很耗时等。

我的表格结构如下,

parent_id |  cat_id

  null    |   1
   1      |   2
   1      |   3
   1      |   4
   4      |   5
   4      |   6

所以,现在上面是我的表结构,我想获取树结构,例如, 如果我在查询中将 parent_id 作为 1 传递,那么它应该返回 2,3,4,5,6 因为 1 的父级>1, 2, 3, 445,6 的父级并且 4 的子级1

所以,我期望的输入和输出,

input    output

  1     2,3,4,5,6
  4     5, 6

那么,有没有一种简单的方法可以通过使用sqlite查询来实现上述树结构?

没有办法使用 sqlite 查询来实现这一点,我需要通过手动循环所有类别 ID 来遵循我正在使用它的当前方法或方式。

最佳答案

您可以使用 group_concat 方法,因为它在 sqlite 中可用。

针对您的问题,我创建了一个名为 Trans 的表并添加了 parent_idcat_id 列。

select parent_id, group_concat(cat_id) from trans group by parent_id;

我有下面提到的这样的表格。

enter image description here

我得到了这样的结果:

enter image description here

希望对您有所帮助。

关于android - 在sqlite中以树结构从数据库中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20770446/

相关文章:

android - 停止其内部的处理程序

java - SnapHelper 项目位置

python - 在 mysql 中生成加密密码,以填充 django 数据库

mysql - 为什么在 MySQL 中使用 20,000 年会有不同的结果

sql - 获取 PostgreSQL 中受 INSERT 或 UPDATE 影响的记录数

java - 如何在Android应用程序中构建SQLite访问?是否使用 ORM(Lite)?

java - Android 预加载启动画面

java - 使用数据库创建 jcomponents

Spring-Hibernate-MySQL 应用程序中的 javax.el.PropertyNotFoundException : Property not found on type java. lang.String

sql - 使用 PATINDEX 在 T-SQL 中查找不同长度的模式