如何找出列中具有最大数字的行?

How to find out the row with max Number in a column?

我有一个 sql 查询是这样的-

select * from (SELECT parent.item_name as name, parent.lft as lft
FROM item_tree AS item,
    item_tree AS parent
WHERE item.lft > parent.lft AND item.rgt < parent.rgt
    AND item.item_id = 6) 
      as ABC

这个returns一个table -

name   |   lft

A      |     1
B      |     2
C      |     3

但是,我需要值 C,因为它具有最大 lft 值。 所以,我修改了代码如下 -

select * from (SELECT parent.item_name as name, parent.lft as lft
FROM item_tree AS item,
    item_tree AS parent
WHERE item.lft > parent.lft AND item.rgt < parent.rgt
    AND item.item_id = 6) 
      as ABC
    having ABC.lft = MAX(ABC.lft)

现在,这个查询returns没有价值。 这段代码有什么问题?

提前致谢!

MAX 是聚合函数,没有 GROUP BY 就不能工作。

试试这个:

select * from (SELECT parent.item_name as name, parent.lft as lft
FROM item_tree AS item,
    item_tree AS parent
WHERE item.lft > parent.lft AND item.rgt < parent.rgt
    AND item.item_id = 6) 
      as ABC
    order by ABC.lft desc limit 1

试试这个查询

    SELECT name, lft
    from (SELECT parent.item_name as name, parent.lft as lft
    FROM item_tree AS item,
        item_tree AS parent
    WHERE item.lft > parent.lft AND item.rgt < parent.rgt
        AND item.item_id = 6) 
          as ABC
    ORDER BY lft DESC
    LIMIT 1