このようにテーブルをソートする最良の方法は何ですか:
CREATE TABLE category(
id INT(10),
parent_id INT(10),
name VARCHAR(50)
);
INSERT INTO category (id, parent_id, name) VALUES
(1, 0, 'pizza'), --node 1
(2, 0, 'burger'), --node 2
(3, 0, 'coffee'), --node 3
(4, 1, 'piperoni'), --node 1.1
(5, 1, 'cheese'), --node 1.2
(6, 1, 'vegetariana'), --node 1.3
(7, 5, 'extra cheese'); --node 1.2.1
IDまたは名前で階層的にソートするには:
'pizza' //node 1
'piperoni' //node 1.1
'cheese' //node 1.2
'extra Cheese' //node 1.2.1
'vegetariana' //node 1.3
'burger' //ノード 2
'コーヒー' //ノード 3
編集:名前の末尾の数字は、構造をよりよく視覚化するためのものであり、並べ替え用ではありません。
編集 2:name
何度か述べたように... 「cheese 1.2 」の末尾の数字は、並べ替えではなく、視覚化のみを目的としています。コメントとして移動しましたが、あまりにも多くの人が混乱してしまいました。