階層構造を持つデータをMySQLに保存するため経路列挙モデルを使おうと思います。
ID | 名称 | パス |
---|---|---|
1 | 車 | /1/ |
2 | TOYOTA | /1/2/ |
3 | PRIUS | /1/2/3/ |
4 | ESTIMA | /1/2/4/ |
5 | HONDA | /1/5/ |
6 | NSX | /1/5/6/ |
7 | CR-V | /1/5/7/ |
ふと疑問に思ったのが、経路列挙モデルで並び順を指定したい場合どうしたらいいのでしょうか?
上記のデータをセレクトしてHONDAを上に持ってきたいです。
ソート用のカラムが追加されても構いません。
よろしくお願いします。
同一階層内や階層を無視した並べ替えなら、単純にソート用のカラムを追加すればいいだけだと思いますが?
経路列挙モデルについて無知なので教えてほしいのですが、TakahashiIkkiさんの回答で/1/5が/1/2よりも前に来るのはどういった理由からなのですか?法則がよくわからないです。
TakahashiIkkiさんの回答に書かれている表は例示されているだけで、SQLでセレクトしてもあの様な並び順にはなりません。
それはわかります。どうして5が上なんですかって質問です。並び順が経路列挙モデルうんぬんではなく、単にユーザー指定順であるなら、hihijijiさんのコメント通り、カラムを追加して順番を登録すればよいだけです。
ユーザー指定順として5を上に持ってきたいということです、質問が言葉足らずで申し訳ないです。ソート用カラムを追加する方法がよさそうですね。
回答2件
あなたの回答
tips
プレビュー