MySQLでtext型カラムに入っている数値をint型としてソートする
2024/02/25
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
数値変換以外にも日時や文字列、バイナリ型とかもあるみたい。
関連記事
-
-
MySQLで「Incorrect integer value: '' for column」エラーの対応方法
MySQLで「Incorrect integer value: '' for c ...
-
-
MySQLのバックアップファイルを簡単に作成できるライブラリ「myphp-backup」の利用方法
MySQLのバックアップを取る際にadminerとかから手動で対応するのではなく ...
-
-
MySQLのバイナリログ(/var/lib/mysql/binlog)を適切に削除する方法
レンタルしているVPS内のファイルを整理していると「/var/lib/mysql ...
-
-
MySQLでグループ化したものを条件で絞る(HAVING)
正規化したテーブルがあってその中には idとtagのカラムがある。 でtagの方 ...
-
-
MySQLのクエリキャッシュの設定方法
MySQLでのクエリキャッシュ設定及び設定項目について以下にメモ。 ...