什么是MySQL等价的MS Access LAST()?

时间:2011-11-15 15:44:36

标签: mysql sql ms-access

我不知道以下查询意味着什么,因为我没有接触过MS Access。我需要将它转换为MySQL,我无法弄清楚LAST()做了什么

SELECT 
    Containers.Container_No, 
    Max(Containers.LastOfContainer_Date), 
    Max(Containers.LastOfContainer_Time), 
    Last(Containers.LastOfETD), 
    Last(Containers.LastOfContainer_Status), 
    Last(Containers.LastOfPickup_From), 
    Last(Containers.LastOfPickup_To), 
    Last(Containers.LastOfConsignee_Name), 
    Last(Containers.LastOfContract_No), 
    Last(Containers.LastOfSeaLNo) 
FROM 
    Containers 
WHERE 
    Containers.Customer_Name = 'value here"
AND  
    Containers.LastOfContainer_Date >='Date here' 
AND 
    Containers.LastOfContainer_Date <= 'Date here' 
GROUP BY 
    Containers.Container_No

有人可以解释一下这个LAST()实际上做了什么吗? 的更新 似乎可以将查询更改为以下内容:

SELECT
        Containers.Container_No,
        Max(Containers.LastOfContainer_Date),
        Max(Containers.LastOfContainer_Time),
        Containers.LastOfETD,
        Containers.LastOfContainer_Status,
        Containers.LastOfPickup_From,
        Containers.LastOfPickup_To,
        Containers.LastOfConsignee_Name,
        Containers.LastOfContract_No,
        Containers.LastOfSeaLNo
    FROM
        Containers
    WHERE
        Containers.Customer_Name = '".$customername."'
    AND
        Containers.LastOfContainer_Date >='".$fromdate."'
    AND
        Containers.LastOfContainer_Date <= '".$todate."'
    GROUP BY
        Containers.Container_No
    order by
        Containers.LastOfETD,
        Containers.LastOfContainer_Status,
        Containers.LastOfPickup_From,
        Containers.LastOfPickup_To,
        Containers.LastOfConsignee_Name,
        Containers.LastOfContract_No,
        Containers.LastOfSeaLNo

2 个答案:

答案 0 :(得分:1)

Last函数返回给定查询的最后一个值,例如我假设在您使用它的查询中将返回该特定客户所做的最后一笔交易的数据, 例如,让我们说Mike Jagger今天购买了2个,他将在同一个日期进行2次交易,如果您使用最后一个函数,您将获得插入的最新信息。

ID    | Date |   Product
1    12/12/2011   socks
2     12/12/2011   shirt

select  last(product)
from buys;

it would output : shirt

BTW模仿您可能想要使用的行为

ORDER BY product DESC LIMIT 1 

答案 1 :(得分:0)

根据this page,“ 最后函数返回查询结果集中的最后一个值。

你可能需要做某种ORDER BY x DESC LIMIT 1