勉強したことのメモ

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

  関連記事

MySQLでグループ化したものを条件で絞る(HAVING)
MySQLでグループ化したものを条件で絞る(HAVING)

正規化したテーブルがあってその中には idとtagのカラムがある。 でtagの方 ...

MySQLのバックアップファイルを簡単に作成できるライブラリ「myphp-backup」の利用方法
MySQLのバックアップファイルを簡単に作成できるライブラリ「myphp-backup」の利用方法

MySQLのバックアップを取る際にadminerとかから手動で対応するのではなく ...

MySQLでデータの集計時に1日の起点を任意の時間に変更する方法
MySQLでデータの集計時に1日の起点を任意の時間に変更する方法

MySQLで1日毎の集計を行う際、例えば2020/01/01のデータは2020/ ...

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

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

MySQLのクエリキャッシュの設定方法
MySQLのクエリキャッシュの設定方法

MySQLでのクエリキャッシュ設定及び設定項目について以下にメモ。   ...