ヤツらに気を付けろ!②
以前も同じタイトルで記事を書きましたが、まさかの続編ですw
■未だにググります
①では以上・超過・以下・未満について取り上げました。
今回のテーマは、昇順・降順についてとなります。
設計をしている時、特にソート機能の項目を作る時に未だに「あれ、どっちがどうだったっけ?」とわからなくなってググります。
ちょうど、この前もググりながらソートの絡むケースを作っていたところだったので、「こりゃnoteのネタにちょうどいいな」と考えながら調べていましたw
■昇順とは
ざっくり言うと「小さい順に並べること」。
数字だったら1・2・3・4…、アルファベットだったらA・B・C・D…と言う具合に。
日付の場合は古いもの→最新になるようです。
■降順とは
これは昇順とは逆で「大きい順に並べること」。
数字なら10・9・8・7…、アルファベットだったらZ・Y・X・W…と言った感じ。
日付は最新→古いものになります。
■これ参考になるかもよ
毎回毎回ソート関係のケースを作る度にググっておりますが、こんなサイトを見つけました。
ひらがなとカタカナについて、小文字で表示されるものが優先されることは意外でした。
まぁ、外国の言葉などやよほど狙わない限りは「ぁ・ァ」などの小文字で始まることは早々ないとは思うので気付かないかもしれないです。
記号や漢字は文字コード順、これは文字コードがわかってないとソートされているかって判別できないところですね。
あと数値。
「1・10・100・・・<2・20・200・・・」のように、1と2の間に10などの頭に1が付く数値が入る場合があります。
上に挙げたサイボウズOFFICEのサイトだと、番号の前や後ろに文字列を付与すると数値ではなく「文字列」項目と同じソートが適用されるようですが、これを本来並んで欲しい順番にするには、例えば3桁なら1桁・2桁の場合であっても頭に0を付けるなどで対応する形になるようですね。
また、MYSQLでの話ですが、textエリアに入れると文字として判断ため文字列ソートになることもあるようです。
ここら辺は類似ケースをつい数ヶ月前に体験したなぁ。
基本的に「文字+数値の組み合わせは数値の部分の桁数を揃えないと、想定する順番通りに並ばない可能性がある」って構えておけば慌てることはなさそうな感じですね。
■カレンダーや手帳ではよくある話だが
これもつい最近の話。
曜日のソートについての質問へのコメントを返している時に思ったんです。
何曜日を最初にするかによって期待値も変わるのでは…と。
曜日の場合は大抵他の曜日のデータもあるから困ることはないと思われます。
※とは言え、昇順で一番上に来るのが日曜日なのが仕様なのに、月曜日が上に来てたら不具合だが。
もし、日曜日と月曜日のデータしかない場合は意外と判断できないだろうなぁと思いました。
だって、日→月・月→日の2つだけだと、昇順がどっちかわからなくないですか?
これも仕様を確認しておいてもいい部分かもしれません。
しかし、日曜/月曜始まりってカレンダーや手帳選びの世界かw
■読めちゃう未来
と、ソートの昇順・降順について色々書いては来ましたが。
忘れた頃のスプリントでソート絡みのテストをすることになったら、「あれ、どっちがどっちだっけ?!」ってテンパってググっている様子が普通に想像できるのが情けない…。
必要最低限の内容だけはいい加減に覚えないとなぁ…。
この記事が気に入ったらサポートをしてみませんか?