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のクエリキャッシュの設定方法
MySQLでのクエリキャッシュ設定及び設定項目について以下にメモ。 ...
-
-
MySQLでIPアドレスを数値として入れると変な値になる場合の対処方法
MySQLでIPアドレスをINET_ATON関数を用いてINT型に変換し格納する ...
-
-
SSH接続でMySQLにダンプファイルをインポートする方法
phpMyAdminやAdminerが入っていなかったり、ダンプファイルのサイズ ...
-
-
MySQLで検索した件数の取得
ページングとかで必要になる総件数について、 いつもググってしまっていたのでメモ。 ...
-
-
SQLで同じ値を複数のレコードに対してUPDATE
やりたかった事は、複数のレコードに対して 同じ値に更新したいというもの。 $sq ...