人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQL のSELECT a ORDER BY XXXXで、XXXX内容が数字であるときに、数値としての昇順・降順に表示するためにはどうしたらいいのでしょうか。現在は文字コード順に出てきます。
なお、XXXXはVARCHAR(10)です。都合でINTにはしたくありません。

●質問者: mouitchou
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:MySQL SELECT XXXX 数字 文字コード
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● POPO
●20ポイント

SELECT a ORDER BY CAST(XXXX AS SIGNED)

でソートキーをINTにキャストすれば大丈夫と思います。

http://dev.mysql.com/doc/refman/4.1/ja/cast-functions.html

◎質問者からの返答

SELECT *

ORDER BY CAST( `division` AS SIGNED )

で、#1064 - You have an error in your SQL syntax near 'ORDER BY CAST(`division`AS SIGNED)' at line 1

となります。


2 ● nandedarou
●20ポイント

ORDER BY CAST(XXXX AS INT)

でいいかも知れません。

http://q.hatena.ne.jp/answer ダミー

◎質問者からの返答

SELECT * FROM `division` ORDER BY CAST(`division` AS INT)

の発行でやはり

MySQLのメッセージ -->

#1064 - You have an error in your SQL syntax near '( `division` AS INT ) LIMIT 0, 30 ' at line 1

になります。

※phpMyAdmin 2.6.3-pl1


3 ● yytamakuro
●20ポイント

select a order by CAST(xxxx AS int)

とかでどうでしょう?

降順なら

select a order by CAST(xxxx AS int) desc

キャスト関数

http://dev.mysql.com/doc/refman/4.1/ja/cast-functions.html

◎質問者からの返答

CAST(xxxx AS int)がなぜかエラーになります。

(^^;


4 ● b-wind
●30ポイント

MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 6.3.5 キャスト関数

SELECT a FROM table ORDER BY CAST(XXXX AS SIGNED);

CAST かな。


ソート用のカラムを別に持ったほうがいいと思うけど。

◎質問者からの返答

CASTはだめなのです(^^; 理由不明です。

ソート用カラムを考えた方がよさそうですね。



5 ● nandedarou
●10ポイント

divisionは、フィールド名ですよね?

FROMの後はテーブル名でないとダメですよ。

SELECT * FROM `ここはテーブル名` ORDER BY CAST(`division` AS INT)

※マイナスの値もあるなら、INTでなく、SIGNEDにして下さい。

http://q.hatena.ne.jp/answer ダミー

◎質問者からの返答

テーブル名もdivisionで、カラムの一つもdivisionなのです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ