• ベストアンサー

文字列のソート

Mysql5を使用しています。 nameというレコードがあったとして、内容が ・year2008 ・year2006 ・year2007 ・year2005 というデータが格納されているときに、 この文字列から判断して年代順にソートすることはできますでしょうか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>フォーマットがばらばらの場合はorder byでは無理でしょうか。 判断しようがないですから難しいですね・・・ SQLが解釈できるよう別途ソート用のフィールドを用意しておくといいかもしれませんね

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

その法則性であればnameでorder byすればソートされませんか?

sakukou10
質問者

お礼

すみません、ソートすることができました。 ・2008年 ・year2007 ・2006-01-01 などフォーマットがばらばらの場合はorder byでは無理でしょうか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルのソートで文字列がうまく並ばない

    スポーツの記録集計をしています。 A列に氏名,B列以降に記録,試合名,日時,順位などの個人のデータが入ったワークシートがあります。 試合ごとに記録を入力しているので,元々は試合名,日時順になっており,約90人分のデータが1年間で1700行余りになりました。一人が複数の試合や種目に参加しているので,これを個人別にまとめようとA列の氏名でソートしました。 すると,同じ名前なのに別名と判断されてうまく並ばない箇所がいくつかあります。 氏名は漢字なのでおそらくコード順に並ぶのだと思いますが,ほぼ読みの50音順に並んでいる感じです。ところが,たとえば「山田」さんだったら音読みの「さん」と訓読みの「やま」の2カ所に分かれて出てきたりします。一方のセルを他方のセルにコピーしてやり直せばもちろんうまくいきますが,データ数が多く,手作業はしていられません。またソートした後「山田」さんのデータが一つだけ別のところに飛んでいたりすると気がつかないことも考えられます。 スペースが入っていたりもなく,IF関数で同一のセル内容かどうか判断させると「同じ」という結果になります。どう見ても同じセルがソートで違うものと扱われるということはあるのでしょうか。また,こういうときはどう対処すれば良いのでしょうか。 エクセルに詳しい方,このような経験がおありの方,アドバイスをお待ちしています。

  • 特定のフィールドの文字列を取得

    初心者ですがよろしくお願い致します。 □わからない事 ・特定のフィールドの文字列を取得 ・取得した文字列を配列に格納 □条件 ・mysqlにはすでにデータが登録済み ・PHPより操作 □具体例 フィールド名(hogehoge)に文字列が入っています。 AAAAAA(10000レコード) BBBBBB(5000レコード) CCCCCC(3000レコード) DDDDDD(1000レコード) ・・・・・・(・・・・レコード) 重複が多数ありますが、重複しない文字列だけを取り出して配列に格納したいと思っていますが、うまいやり方がわかりません。 どなたか教えて頂けませんか? よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • 文字列をソートする方法

    数値をソートする方法にはバブルソートやクイックソートなどがあり アルゴリズムは分かるのですが 文字列を五十音順にソートしたい場合にはどのようにしたら良いですか? 検索をかけてみたのですが、大抵プログラミング言語に備わったsortの方法が紹介されており 自分で処理を行う方法については書かれていません。 ExcelのSort機能を使わない方法で教えてください。

  • 文字列分割して、ソート出来ますか?

    SQL内で文字列を分割して、その値でソートすることは出来ますか? データ) First Name + Last Name が1つのフィールドに入っている。 リストアップ) Last Nameのみを抽出して、ソート。 こんなことは可能でしょうか?

  • MySQLで文字数によるソートはできますか?

    宜しくお願いします。 MySQLの検索で、そのカラム内の文字数の多い順、少ない順でソートする方法はあるでしょうか。

    • ベストアンサー
    • MySQL
  • mysqlで長さ無制限の文字列を格納することはできますか?

    mysqlを用いて掲示板を作りたいです。その際に、簡素化のため、掲示板の全てのデータをmysqlに格納したいと思っています。 また、掲示板における本文の部分は、文字列の長さを無制限にするのが妥当だと思います。 しかし、mysqlのマニュアル(http://dev.mysql.com/doc/mysql/ja/BLOB.html)によると、一番大きい型であるLONGBLOB型の記憶容量は 2^32バイトとなっており、それを超える文字列は切り捨てられるとなっています。 そこで、ご教授いただきたいです。 長さ無制限の文字列をmysqlに格納する方法はありますか?そしてその場合はどうすればよいですか? それとも、長さ無制限の文字列をmysqlに格納する方法ははなく、その場合は別ファイルを用意し、そちらに書き込むなどをする必要がありますか? どうぞよろしくお願いします。

    • ベストアンサー
    • MySQL
  • 2つの列を合わせてソートしたい。

    2つの列を合わせてソートしたい。 table名:test 【name】 【area】 【ground】 【bldg】  aaa    3    65.12   84.94  bbb    1    24.6    35.14  ccc    3    112.58  114.5  ddd    2    54     83.14  eee    4    89.25   41  fff     3    74.5    99.10 「ground」と「bldg」はfloat型で、整数と小数点の数値が入っています。 やりたいことは「ground」と「bldg」の2つの列で数値が大きい順でソートしたい。 SELECT * FROM `test` ORDER BY `ground` DESC,`bldg` DESC; こうすると、当たり前な話ですが、「ground」でソートされた後に「bldg」でソートされてしまいます。 そうではなくて、「ground」と「bldg」を合わせて、ソートしたいのです。 【求める実行結果】 【name】 【area】 【ground】 【bldg】  ccc    3    112.58  114.5  fff     3    74.5    99.10  eee    4    89.25   41  aaa    3    65.12   84.94  ddd    2    54     83.14  bbb    1    24.6    35.14 色々と試してみましたが、うまくいかず前に進まない状態です。 何かいい解決法をご存知の方がいらっしゃいましたらご教授お願い致します。

    • ベストアンサー
    • MySQL
  • ソートの方法

    某CGIを改造中です。 記事を更新日順でソートしなおしたいです。 多分、ソート部分だと思われる部分の現状は、 ----- foreach (@data) {   ($no,$year1,$month1,$day1,$name~~) = split(/<>/);   @tmp = ();   @tmp = map {(split /<>/)[0]} @data;   @data = @data[sort {$tmp[$b] cmp $tmp[$a]} 0 .. $#tmp]; } ----- です。 ただ、見ての通り、日付が「$year1,$month1,$day1」と分かれています。これを結合して(20060309のような形)、それを元にソートしなおしたいのですが、どのようにしたら良いでしょうか? 方法を教えてください。お願いします。

    • ベストアンサー
    • Perl
  • perlで文字列の大きい順にソートするプログラムが書きたいのですが、サ

    perlで文字列の大きい順にソートするプログラムが書きたいのですが、サンプルになるような、(てか、どこかにありそうなプログラムだと思うのですが、なければ自分で書きますが)ものを教えてください。検索しましたが、良いのが見つかりませんでした・・・。

    • ベストアンサー
    • Perl
  • 構造体のリストをソートしたい。

    ある名簿のリストを作りました。 以下のような構造体で、 typedef struct meibo{ char name[10]; int old; struct meibo *next; }MEIBO; これを、ポインタp->next->nameをたどっていって、名前が辞書順になるようにリストを作ったのですが、 これを年齢順にソートして表示させたいんです。 どんな方法があるんでしょうか? 一旦すべてを配列に格納して、クイックソート…とかも考えたのですが、すごく領域をとるし、なんか2度手間(最初から配列に順に格納していけばよかったなぁ・・・と。 それでもやっぱり最初から名列順にするときから配列に入れておくほうがいいのでしょうか? 教えてください。 (最初から年齢を比較してリストを作れば・・ってのはなしで、名列順のリストが存在するものとしてください。)