MySQLでtext型カラムに入っている数値をint型としてソートする
MySQLでtext型として指定されているカラムがあり、その中には文字列であったり数値であったり色々入っていた。具体的にはWordPressのpostmetaテーブルでmeta_keyで絞って、meta_valueは数値だけを抽出できたんだけど、文字列扱いなのかORDER BYでソートできなかった。
以下で形変換することで解決。
SELECT * FROM table WHERE meta_key LIKE 'hogehoge' ORDER BY CAST(meta_value AS SIGNED) DESC
■リファレンス
https://dev.mysql.com/doc/refman/5.6/ja/cast-functions.html#function_cast
数値変換以外にも日時や文字列、バイナリ型とかもあるみたい。
関連記事
-
-
MySQLiでFOUND_ROWS(全件数取得)
MySQLiでFOUND_ROWS(全件数取得)。 $sql = ' SELEC ...
-
-
MySQLで検索した件数の取得
ページングとかで必要になる総件数について、 いつもググってしまっていたのでメモ。 ...
-
-
MySQLでIPアドレスを数値として入れると変になる
MySQLでIPアドレスをINET_ATON関数を用いてINT型に変換し格納する ...
-
-
phpMyAdminでテーブルの操作
table_aと同じ構造のtable_bを作りたい時、 手動で作成するか、tab ...
-
-
MySQLのエラーメール送付
MySQLエラーを取得してエラーメール送付。 <? error_repor ...
-
-
MySQLiでINSERT文
MySQLiでINSERT文 ■ソース $mysqli = new mysqli ...
-
-
MySQLで全角半角を区別せずに検索する方法(collate utf8_unicode_ci)
あるシステムでMySQLの検索時に「WHERE test_column coll ...
-
-
WordPressでデータベース接続確立エラー
WordPressで「データベース接続確立エラー」というエラー表示がされた。大抵 ...
-
-
MySQLiで直近に挿入したオートインクリメントの値と次回挿入する値を取得する方法
phpとmysqliを使っている中で次回挿入するオートインクリメントの値と、前回 ...
-
-
MySQLでデータがあれば上書き、無ければ挿入する
既存のソースを編集時に「REPLACE INTO~~」 という見たことの無いSQ ...