当前位置: 首页 > 面试题库 >

订购MySQL结果以服从父母/子女

冀嘉木
2023-03-14
问题内容

我有一个这样的表:

ID   NAME                     TYPE     PARENT
1    Letters of Jane Austen   book     0
2    Chapter 1                chapter  1
3    Chapter 2                chapter  1
4    Chapter 3                chapter  1
5    Title 1                  title    2
6    Title 2                  title    2

我想创建一个有序的html" target="_blank">表单,如下所示:

[]Letters of Jane Austen
  []Chapter 1
    []Title 1
    []Title 2
  []Chapter 2
  []Chapter 3
[]Another book...

在数据库中,有很多书,而不仅仅是一本书。

有没有办法以这种方式对查询“
SELECT”进行排序?这只是一个表面问题,不需要做多维数组之类的事情,因为我可以在标签上贴上它们的类型,然后根据类型更改它们的外观。但是我需要以正确的顺序查找查询。

PD:对不起,我的英语:S


问题答案:

不要以为数据库是个好主意。查询将很难。Imo更好-您选择所有书籍,以严格的顺序将其写到页面上,然后使用js重新排序。

HTML可能是:

<div id="books">
    <div id="book_1" class="book" parent="0">Letters of Jane Austen</div>
    <div id="book_2" class="book" parent="1">Chapter 1</div>
    <div id="book_3" class="book" parent="1">Chapter 2</div>
    <div id="book_4" class="book" parent="1">Chapter 3</div>
    <div id="book_5" class="book" parent="2">Title 1</div>
    <div id="book_6" class="book" parent="2">Title 2</div>
</div>

因此,执行此层次结构的js:

$(function () {
    $('#books .book').each(function () {
        var p = $(this).attr("parent");
        if ($('#book_' + p).length) {
            $(this).appendTo($('#book_' + p));
        }
    });
});

在JSFiddle上检查

更新

而且,如果您希望它与非js客户端一起正常工作,则可以使用php在后端上对其进行重新排序,但是解决方案不会那么漂亮:D



 类似资料:
  • 问题内容: 下面是Stuff类型的结构。它具有三个整数。A ,它和它的。让我们假设计算给定int列表的double和power是昂贵的计算。 的结果应与初始化内容相同,例如: 我知道我可以使用并从通道中收集值,但是我不知道什么双/次方属于什么数字。 问题答案: Goroutines独立地并行运行,因此,如果没有显式同步,您将无法预测执行和完成顺序。因此,您无法将返回的数字与输入的数字配对。 您可以

  • 问题内容: 我试图以这样一种方式编写SQL Server 2008查询,以便可以根据需要循环遍历输出和输出标头。我已经多次以错误的方式完成了这些工作,并让ColdFusion在页面中进行了艰苦的工作,但是需要在SQL Server中完成。 我希望查询结果集如下所示: 如果ParentID为0,则表示它是主要类别。如果ParentID大于0,则表示它是次要类别,是父级的子级。 因此,父母需要订购A-

  • 问题内容: 是否可以对第一个查询进行排序并保留返回的行作为第一行,而不对第二个查询进行排序。(如果有道理) 我当前查询的一个示例是: 我希望“苹果”类别下的设备将按照该列表的顺序进行组织,并位于其他设备上方的列表顶部。但这似乎使两个查询混杂在一起。 问题答案: 您需要引入一个人工排序键。就像是:

  • 我被一个简单的任务困住了。我只需要这通电话的结果 其中,是一个模型。我试过这个 但它不起作用。从表中获取所有数据并对其进行排序的更好方法是什么?

  • 我想按字母顺序排列字符串“s”的子串,长度为“k” 我尝试首先使用函数对字符串的字符进行词法排序,然后尝试打印第一个和最后一个子字符串 预期输出:将字典上最小和最大的子字符串作为单个换行符分隔的字符串返回。

  • 问题内容: 我有一个叫做 School 的模型,它有很多 学生 。 这是我模型中的代码: 我在控制器中使用此代码让所有学生: 并在视图中: 现在,我想按表中的某些字段对 学生 进行排序。我怎样才能做到这一点? 问题答案: 您可以通过几种方法实现这一目标: