フォロー

【Help!!】
グルドンの皆様大変お世話になっております。
ただいま困っていることがありまして、MySQLでテーブルを作っているんですが、添付している写真(背景白い方)の通りの並びに並び変えれません。
どうすればその並びになるのかをご教授ください。よろしくお願いします。

· · Tootle for Mastodon · 3 · 0 · 0

@Imkikuesero
どういう条件で並び変えたいのか、言葉で説明できないと見た目だけでは正解にたどり着けないと思いますよ。
cidだけ、cidとcname、cidとcapital この辺り見ると順番はありそうなのですけど 並び替えできるようにこれらの列の値を組み合わせて加工したものでソートさせればよいかと、それかAから始まるものとBから始まるものを分けて考えるとか

@Imkikuesero 確かに文面を読ませてもらったけど、ぱっとみ「どういう条件で並び替えたいのか..」 と思っちゃいますね。(自分もそう思った)

多分、キクエセロさんは、「順番通りにInsertしたのに、一覧表示させたら並び方がおかしくなっちゃう!」って言うことを言いたいんじゃないのかな?

で、自分も手を動かして分かった。確かにinsert順に表示されないYo!

でも、答えは分かったよ。
データベースエンジンがInnoDBになっているからです。MyISAMで実行すればInsert順に表示されます。ちなみに、主キーを打つ前であればInnoDBであっても挿入順に表示されるよ。

@hideki_oride まさに。言いたいことはこの通りです。言葉足らずですいません。。。

@Imkikuesero すでに他の方が書かれているとおり、order by未指定時のselect表示順序はストレージエンジンに依存しており、白い画像のように追記順に出したいのであれば、データベースのストレージエンジンにMyIsamを利用するのが正解かと思います。(最近のデフォルトにはInnoDBが使われている)

でも追記順に表示したいのであれば別途カラムを追加する方が一般的なので、勉強の途中とかであれば気にしないのが正解かもしれないです。

ログインして会話に参加
グルドン

Mastodon は、オープンなウェブプロトコルを採用した、自由でオープンソースなソーシャルネットワークです。電子メールのような分散型の仕組みを採っています。