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
数値変換以外にも日時や文字列、バイナリ型とかもあるみたい。
関連記事
-
-
phpMyAdminでテーブルの操作
table_aと同じ構造のtable_bを作りたい時、 手動で作成するか、tab ...
-
-
mysqlでrootのパスワードが分からない場合
pleskで管理しているサーバがあり、mysqlのrootのパスワードが分からな ...
-
-
PHPからMySQLデータを取得した際に一括で配列に入れる方法
MySQLからデータを取得して、PHP側で配列に入れる際に今まで一個ずつ書いてい ...
-
-
MySQLでtime型データの減算と条件検索
MySQLでtime型データからint型データの減算を行い、減算後のデータを検索 ...
-
-
MySQLでユニークキーをはる
MySQLでseqとcodeみたいなものをあわせて ユニークキーをはりたかった。 ...
-
-
MySQLのエラーメール送付
MySQLエラーを取得してエラーメール送付。 <? error_repor ...
-
-
MySQLのUNION
$sql_1 = "SELECT name_a,name_b FROM tabl ...
-
-
MySQLで速度改善
よく見るけど実際に対面してみて難しさが分かった。 150万件ほどのデータがあって ...
-
-
文字コードのutf8_general_ciとutf8_unicode_ciの違い
MySQLで設定する時に使っているサーバーによってデフォルトの文字コードがutf ...
-
-
MySQLでグループ毎に連番を設定する方法
MySQLでオートインクリメントを使用せずにグループ毎で連番を割り振りたかった。 ...