MySQL(マイエスキューエル)

データベース

【MySQL】文字列をソートしたい

以前弊社で構築したMySQLを使用したシステムがあるのですが、

本日はそのシステムの部分改修の依頼を受けたので、

対応していました。

 

その際に、

数字データを保存しているある項目でソートして該当レコードを取得する処理が必要だったのですが、

ちょっとした問題が発生しました。

 

ソートに使用したい項目がVarcharで作成されていた為に、

上手く並び替えが行えないという、

何とも残念な結果に。。。

例えば、

| 10 |
| 2  |
| 1  |
| 15 |

というデータがあったとして、

昇順で並び替える場合には、

================
1, 2, 10, 15
================

という結果が欲しいのですが、

実際には、

文字列として扱われてしまうために、

================
1, 10, 15, 2
================

という結果が返ってきてしまいます。

 

こんな場合にはカラムを数値型に変更してしまいたいのですが、

制作者が何かの意図があって「Varchar」にしている可能性あり、

怖いので、

それは却下となりました。

仕方ないので、

CAST関数を使って対応することに。

 

その場合のSQLは、

select * from データベース名 order by cast(カラム名 as signed)

となります。

もしくは、

select * from データベース名 order by カラム名 + 0

というように、

「カラム名 + 0」

としても、

同じ結果が得られるようです。

WordPress短期学習プログラム

関連記事

  1. MySQL(マイエスキューエル)
  2. MySQL(マイエスキューエル)
  3. MySQL(マイエスキューエル)

    データベース

    【MySQL】オーバーヘッド!!

    弊社テスト環境のphpMyAdminの画面をなんとなく眺めていると、…

  4. Database(DB:データベース)

    データベース

    SQLクエリ(SQL文)とSQLの違いについて

    正直、どうでもいいと言えばどうでもいい内容ですが、本日は少…

  5. MySQL(マイエスキューエル)

    サーバー

    MySQLのパスワードを忘れてしまった。。。

    MySQLのrootのパスワードを忘れてしまいました!!&nbsp…

  6. MySQL(マイエスキューエル)

    データベース

    MySQLのCASE文

    現在、簡単な掲示板のようなシステムを作成しているのですが、その際に…

最近の記事

  1. WordPressのセキュリティ対策(脆弱性対策)
  2. ドメイン失効
  3. SEO関連タグ
  4. SEO関連タグ
  5. レンタルサーバー(共用サーバー)
  6. システム開発用のアイキャッチ
  7. システム開発用のアイキャッチ
  8. ドメイン 利用制限
  9. WP:WordPress(ワードプレス)
  10. システム開発用のアイキャッチ
PAGE TOP