【问题标题】:max() function not getting largest valuemax() 函数没有得到最大值
【发布时间】:2015-10-25 12:41:57
【问题描述】:

我在 mysql 数据库中有一个表“orders”,其中包含列“order_number”。而且因为每个订单都有几行(取决于 eshop 订单的大小),“order_number”列看起来像这样:

1
1
1
2
2
2
2
2
3
3
3

....等...目前大约有 1000 个订单,这意味着 table 中有数千行。我想做的只是检索最高订单号......听起来很容易:

$result=mysql_query("SELECT max(order_number) as max FROM orders");
$lastordernumber = mysql_fetch_array($result);
回声 $lastordernumber["max"];

...这将返回 "99" ,而当前最高订单号接近 1000 。有什么想法吗?

谢谢!

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    当“order_number”是一个字符串时会发生这种情况。如果这是您想要的,您应该将其存储为数值。但是,出于此查询的目的,您可以将其视为数字:

    select max(order_number + 0) as max
    from orders;
    

    或者,您可以将查询编写为:

    select order_number
    from orders
    order by len(order_number) desc, order_number desc
    limit 1;
    

    【讨论】:

    • 像魅力一样工作! ......非常感谢......刚刚花了一个多小时试图解决这个问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    相关资源
    最近更新 更多