2

何らかの理由で、整数値を文字列としてデータベースに入力する必要があり、それらに対してクエリを実行し、それらの整数を文字列として比較したいと考えています。整数 (例として 10 億から 10 億の間) を美化して文字列として比較する方法はありますか?

前もって感謝します。

4

2 に答える 2

3

必要なだけ先行ゼロを追加するだけです

したがって、数値 1、2、3 は文字列形式になります: 0000000001、0000000002、0000000003 このように文字列比較は正しく行われます。

Javaでは、次を使用します:

 String.format("%09d", number); 

先頭に 9 個のゼロを付けます。

于 2010-06-10T13:39:11.467 に答える
0

もう 1 つのオプションは、文字列値を整数に戻すようにクエリを変更することです。(以下の疑似コードは、データベースでコンパイル/動作しない場合があります)

String sql = " SELECT * "
+ " FROM some_table "
+ " WHERE CAST(some_table.int_column_stored_as_string AS INTEGER) = ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setInteger(1, myIntValue);

これに関する 1 つの問題は、これが各行で関数を実行するため、データベースが で定義されたインデックスを使用できなくなることsome_table.int_column_stored_as_stringです。

于 2010-06-10T15:10:37.890 に答える