我在 Spring hibernate 中工作
我的数据库表中有一个 VARCHAR
类型的列,但它存储整数值。因此,如果我使用 sql 或 hql 或 Criteria(Order.asc) 对其进行排序,则所有排序都会将其排序为字符串。我需要将它按照它存储的整数值进行排序。在这里我不能改变我的 table 。
无论如何,是否可以使用 Criteria
将其排序为整数
对我来说唯一的解决方案是在将其阅读到某个列表并在我的服务中进行排序之后吗?
编辑:我使用MYSQL
谢谢
最佳答案
您可以在排序之前尝试对其进行强制转换。在 mysql 中,类似这样:
SELECT CAST(myVarcharField AS DECIMAL(10)) as myIntField order by myIntField;
或作为无符号整数:
SELECT CAST(myVarcharField AS UNSIGNED) as myIntField order by myIntField;
cast 似乎是有效的 HQL expression也是。
关于java - 按 varchar 字段中存储的整数值对表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4437410/