2016-09-04 3 views
0

基本的に私は電話と呼ばれるSql Columnを持っています。そこには数字と文字が入っています。 私の電話テーブルの最大整数値を取得したいのですが、MAX()を使用することが可能であることがわかりましたが、私にとっては数字の値ではなく最大の文字を返します。ここでjava sqlの列の最大整数値を取得するには?

は、私はそれをやっている方法です:

String query = "SELECT MAX(PHONE) FROM db.stb"; 

私はこの00010511000000000する出力結果を必要とする私の列

の最大値であり、あなたはどのように私に言うならば、私は本当に感謝しています

String query = "SELECT MAX(PHONE) FROM db.stb WHERE COLUMNNAME=PHONE"; 
+0

最初の質問、なぜあなたは、単一の列に2つの異なる情報を格納しているのですか?それは間違っている –

+0

は、その列のいくつかのサンプルデータを示しています。それに基づいて期待される出力を追加します。 – 1000111

+0

カラムのタイプは何ですか? db.stbは本当にテーブル名ですか? – pmcevoy12

答えて

1

私のコメントに記載されているとおり、2つの異なる情報を1つの列に格納しないでください。テーブル構造の変更を検討してください。

結果を得るためにこの構造を使用すると、最初にその上のアルファベットを含む行を除外します。 REGEXPを使用して、数値のみを持つレコードをフィルタリングします。それから最大値を取る。この質問から取ら

SELECT MAX(PHONE) FROM db.stb WHERE col1 REGEXP '^[0-9]+$'; 

REGEXコンセプト:Detect if value is number in MySQL

ここ
+0

私はちょうどあなたが言ったように、結果は: 'john.fobmate' – jacky

+0

@ジャッキーよ、これを試してみてください' db.stbから電話を選択するWHERE col1 REGEXP '[0-9] +' 'そしてあなたが結果内の数値以外のデータ –

+0

整数値は出力されますが、最大値は出力されません。 – jacky

関連する問題