勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

MySQLでtext型カラムに入っている数値をint型としてソートする

   2024/02/25  MySQL

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

  関連記事

WordPressサイトのロードアベレージが高い際の対応方法

あるWordPressサイトのロードアベレージが先月ぐらいまでは通常0.5前後で ...

InnoDBのオートインクリメントで抜け番が発生する原因について

MySQLのInnoDBでIDというカラムにオートインクリメント設定していたが、 ...

MySQLにてUUIDを発行しプライマリキー(主キー)にする方法

普段MySQLでプライマリキー(主キー)を使う場合、オートインクリメントを利用し ...

MySQLでデータがあれば上書き、無ければ挿入する

既存のソースを編集時に「REPLACE INTO~~」 という見たことの無いSQ ...

MySQLのtinyintのカラムにbool値を入れた場合

他所のシステムに携わることがあり中身を色々見ているとMySQLでtinyint( ...