MYSQLI选择没有前导零的最大INT

时间:2016-12-13 21:34:53

标签: mysql sql mysqli

我遇到了数据库查询问题。我正在尝试选择表的最大值,但不幸的是,表没有前导零。字段中的id号从9999变为10000,但是当我尝试获得MAX('id')时,返回9999而不是10000 。我认为这个问题是因为9999不是09999.一些简单的谷歌搜索似乎没有回答这个问题,我得到的大多数结果是如何从SQL搜索中删除前导零,而不是如何处理他们不在那里。

SELECT MAX(id) as MaxID FROM Orders

当没有前沿零时,有没有办法选择最大值?

1 个答案:

答案 0 :(得分:0)

您似乎理解了这个问题 - 将数值存储为字符串会更改值的排序方式。

您可以通过添加零来转换为数字:

SELECT MAX(id+0) as MaxID
FROM Orders;

或者,您可以使用ORDER BYLIMIT获得最大值:

select o.*
from orders o
order by length(id) desc, id desc
limit 1;