2017-10-29 1 views
0

例:私はこのようにそれらを注文したいソートデータ、そして数字

32 BB 
12 A 
84 H 
13 H 
34 C 
16 C 
115 H 
18 C 

12 A 
32 BB 
16 C 
18 C 
34 C 
13 H 
84 H 
115 H 

は、ここで私はこれまで試したものです:

SELECT * 
FROM people 
ORDER BY IF(data_name RLIKE '^[a-z]', 2, 3), data_name 

そのSQLクエリは、ソート方法と同様にソートされます。どうすればこれを達成できますか?

+0

のTry ORDER、DATA_NAME – Grantly

+1

あなたはどのようなデータベースを使用しているの? 1列または2列のデータですか? –

+0

同じ結果、Grantly。私はMariaDB、Gordonを使っていると思います。それかInnoDBか。私は質問を投稿する前にそれを調べようとしましたが、見つからなかった:/ – Erik

答えて

1

データは、2つの列(私は、質問とサンプルデータをどう解釈するかである)、そして単純に行うにある場合:データが1つの列にある場合、私はrlikeから推測します

order by col2, col1 

MySQLを使用していることを、あなたが行うことができます:IF(DATA_NAME RLIKE '^ [AZ]'、4,2)BY

order by substring_index(col, ' ', -1), substring_index(col, ' ', 1) + 0 
+0

多くの感謝!あなたの答えは完璧に働いた!私は2つの列に値があった場合、私はあなたに尋ねることはありません;) – Erik

+0

もう一度質問。それを逆順に並べ替えるにはどうしたらいいですか?だから、 '115 H'が最初に来て、 '12 A'が最後に来ますか? @Erik。 – Erik

+1

。 。 'order by'キーの後に' DESC'を入れます。 –

関連する問題