2

注文番号(orderNum)というデータの列があり、次のようになります。

1124, 203, 5467, MANUAL1, MANUAL34, DEMO12, DEMO998, INTERNAL2312, INTERNAL232

基本的に、特定のタイプの「最大」の注文番号を取得するSQLクエリを作成する必要があります。整数である実際の順序は簡単ですが、MySQLがVARCHARsで行う並べ替えは少し風変わりです。したがって、上記のデータセットから、次の手動注文番号を探している場合、それMANUAL34が最後に使用された手動注文番号でINTERNAL2312あることがわかる必要がありますDEMO12(番号は1ずつ増加します)。列全体を引き出してJavaWebサービスでソートせずにこれを実現する方法はありますか?

4

1 に答える 1

4

あなたは次のようなことをすることができます:

select * from testing where value like 'MANUAL%' 
order by CAST(right(value, length(value)-length('MANUAL')) as UNSIGNED) desc 
LIMIT 1

SQLフィドルへのリンク

于 2012-10-17T18:33:37.220 に答える