何らかの理由で、整数値を文字列としてデータベースに入力する必要があり、それらに対してクエリを実行し、それらの整数を文字列として比較したいと考えています。整数 (例として 10 億から 10 億の間) を美化して文字列として比較する方法はありますか?
前もって感謝します。
何らかの理由で、整数値を文字列としてデータベースに入力する必要があり、それらに対してクエリを実行し、それらの整数を文字列として比較したいと考えています。整数 (例として 10 億から 10 億の間) を美化して文字列として比較する方法はありますか?
前もって感謝します。
必要なだけ先行ゼロを追加するだけです
したがって、数値 1、2、3 は文字列形式になります: 0000000001、0000000002、0000000003 このように文字列比較は正しく行われます。
Javaでは、次を使用します:
String.format("%09d", number);
先頭に 9 個のゼロを付けます。
もう 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
です。