Beautify用于比较字符串的整数值

时间:2010-06-10 13:32:37

标签: java string integer hql string-comparison

由于某种原因,我需要将我的整数值作为字符串输入到数据库,然后我想对它们运行查询并将这些整数作为字符串进行比较。有没有办法美化整数(例如1到1亿美元),所以我可以将它们作为字符串进行比较?

提前致谢。

2 个答案:

答案 0 :(得分:3)

根据需要添加尽可能多的前导零

所以数字1,2,3变为字符串形式:0000000001,0000000002,0000000003 这样字符串比较正确

在java中你会使用:

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

有9个前导零。

答案 1 :(得分:0)

另一种选择是修改您的查询以将字符串值转换回整数。 (下面的伪代码,可能无法为您的数据库编译/工作)

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);

这样做的一个问题是,因为这会在每一行上运行一个函数,所以数据库将无法使用some_table.int_column_stored_as_string上定义的任何索引。