2017-05-29 16 views
1

列に数字が含まれていない場合はタイトルで、最初の文字が数字の場合はタイトル* 1で注文します。SQL ORDER BY "IF"

ORDER BY if(title REGEXP '^[0-9]+'=0,title,title*1) ASC 

ここには何もありませんか?

+1

サンプルデータと望ましい結果をご提供ください。 –

+0

あなたは* 1があなたの考えていることを確信していますか? – Mihai

答えて

3

まずどちらをお探しですか?数字か文字?

あなたのアプローチの問題はタイプです。だから、あなたが最初に望むものを決めてください。 。 。数:

order by (title REGEXP '^[0-9]+') DESC, -- put numbers first 
     title + 0,      -- order by numbers as numbers 
     title       -- order by everything else 
+0

タイトル順+0、タイトル - これは私の例ではうまく動作します。))) – Vesla

+0

@Vesla。 。 。それも動作することができますが、最初に非数字を置きます。 –

+0

ありがとう))))))))) – Vesla