mysql - 重新研究这个问题:php无限分类的子分类如何再排序
第一步。建立无限分类表。
<code>CREATE TABLE IF NOT EXISTS `chi_category` ( `id` int(11) NOT NULL AUTO_INCREMENT, `DishCategory_Path` varchar(255) DEFAULT NULL, DishCategory_Sort int(11), `DishCategory_Name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ; </code>
第二步。使用以下查询语句
<code>SELECT `id`,`DishCategory_Path`,`DishCategory_Name`,`DishCategory_Sort`,concat(`DishCategory_Path`,'-',id) as fullpath FROM `chi_category` order by fullpath </code>
第三步。看上面的语句结尾时order by fullpath
。这个时候大致排序是正确的。
但是DishCategory_Sort
这个字段的值没有排序。
因为order by
要求当按照多个列进行排序时,只有第一列相同时才使用第二列。但是第一组fullpath
是不可能相同的。所以现在不知道DishCategory_Sort
这个字段的值如何排序。
我想实现的正确的情况是先按fullpath
排序,然后 子分类例如 (川菜、卤菜)应该在上级分类(吃的)之下进行子分类的排序,如图所示 卤菜应该排在川菜前面才对。
那么现在怎么处理呢?各位大神
回复内容:
第一步。建立无限分类表。
<code>CREATE TABLE IF NOT EXISTS `chi_category` ( `id` int(11) NOT NULL AUTO_INCREMENT, `DishCategory_Path` varchar(255) DEFAULT NULL, DishCategory_Sort int(11), `DishCategory_Name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ; </code>
第二步。使用以下查询语句
<code>SELECT `id`,`DishCategory_Path`,`DishCategory_Name`,`DishCategory_Sort`,concat(`DishCategory_Path`,'-',id) as fullpath FROM `chi_category` order by fullpath </code>
第三步。看上面的语句结尾时order by fullpath
。这个时候大致排序是正确的。
但是DishCategory_Sort
这个字段的值没有排序。
因为order by
要求当按照多个列进行排序时,只有第一列相同时才使用第二列。但是第一组fullpath
是不可能相同的。所以现在不知道DishCategory_Sort
这个字段的值如何排序。
我想实现的正确的情况是先按fullpath
排序,然后 子分类例如 (川菜、卤菜)应该在上级分类(吃的)之下进行子分类的排序,如图所示 卤菜应该排在川菜前面才对。
那么现在怎么处理呢?各位大神
把Dishcategory_sort 放入fullpath和DishCategory_Path
<code>mysql> insert into chi_category values(11, '0-0', 0), (12, '0-0', 0), (13, '0-0-0-11', 2), (14, '0-0-0-11', 1); Query OK, 4 rows affected (0.00 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> SELECT `id`,`DishCategory_Path`,`DishCategory_Sort`,concat(`DishCategory_ Path`,'-',Dishcategory_sort, '-', id) as fullpath FROM chi_category order by fullpath; +----+-------------------+-------------------+---------------+ | id | DishCategory_Path | DishCategory_Sort | fullpath | +----+-------------------+-------------------+---------------+ | 11 | 0-0 | 0 | 0-0-0-11 | | 14 | 0-0-0-11 | 1 | 0-0-0-11-1-14 | | 13 | 0-0-0-11 | 2 | 0-0-0-11-2-13 | | 12 | 0-0 | 0 | 0-0-0-12 | +----+-------------------+-------------------+---------------+ 4 rows in set (0.00 sec) </code>

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Eine der wichtigsten Änderungen, die in MySQL 8.4 (der neuesten LTS-Version von 2024) eingeführt wurden, besteht darin, dass das Plugin „MySQL Native Password“ nicht mehr standardmäßig aktiviert ist. Darüber hinaus entfernt MySQL 9.0 dieses Plugin vollständig. Diese Änderung betrifft PHP und andere Apps

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

CMS steht für Content Management System. Es handelt sich um eine Softwareanwendung oder Plattform, die es Benutzern ermöglicht, digitale Inhalte zu erstellen, zu verwalten und zu ändern, ohne dass dafür fortgeschrittene technische Kenntnisse erforderlich sind. CMS ermöglicht Benutzern das einfache Erstellen und Organisieren von Inhalten

Arrays sind lineare Datenstrukturen, die zur Verarbeitung von Daten in der Programmierung verwendet werden. Manchmal, wenn wir Arrays verarbeiten, müssen wir dem vorhandenen Array neue Elemente hinzufügen. In diesem Artikel werden wir verschiedene Möglichkeiten diskutieren, Elemente zum Ende eines Arrays in PHP hinzuzufügen, mit Code -Beispielen, Ausgabe sowie Zeit- und Raumkomplexitätsanalyse für jede Methode. Hier sind die verschiedenen Möglichkeiten, um einem Array Elemente hinzuzufügen: Verwenden Sie quadratische Klammern [] In PHP besteht die Möglichkeit, Elemente zum Ende eines Arrays hinzuzufügen, die Verwendung von Quadratklammern []. Diese Syntax funktioniert nur in Fällen, in denen wir nur ein einzelnes Element hinzufügen möchten. Das Folgende ist die Syntax: $ array [] = Wert; Beispiel
