前提・実現したいこと
MySQLにて
1F,2F,3F,4F,5F,6F,7F,8F,9F,10F,11F,12F,M2F,M4F
のような値の入った単一カラムにて
1F,2F,M2F,3F,4F,M4F,5F,6F,7F,8F,9F,10F,11F,12F
のように「M + 数字F」の値を数字の羅列間に挿入してソートをしたいです。
発生している問題
Mと数字のカラムを分ければ実現できそうですが、
既存システムへの影響が大きそうなのでカラムの追加をすることはできません。
考えたSQL文
select *
case when column like '%1F%' then 1
case when column like '%2F%' then 2
case when column like '%3F%' then 3
case when column like '%4F%' then 4
・・・
case when column like '%9F%' then 9
else 100 END
As Sort_id
order by Sort_id asc;
では12Fが上に来てしまい思ったようにいきませんでした。
上限が分かれば愚直にそこまで書き並べるということもできそうですが。。
試したこと
試したわけではないですが
書いていて思ったのはMと数字Fを二つのカラムに分けてselectする方法があれば
別カラムでデータが入っている時と同様のソートが出来るのではと思いました。
補足情報(FW/ツールのバージョンなど)
MySQL 5.6.16
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/14 08:59