勉強したことのメモ

webプログラマが勉強したことのメモ。

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

 

数値変換以外にも日時や文字列、バイナリ型とかもあるみたい。

 - MySQL

  関連記事

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でオートインクリメントを使用せずにグループ毎で連番を割り振りたかった。 ...