gpt4 book ai didi

mysql - MYSQL 上的 Max of Max

转载 作者:行者123 更新时间:2023-11-30 22:44:30 29 4
gpt4 key购买 nike

我正在制作一个非循环图数据库。

表 Material (id_item,id_collection,...)主键(id_item,id_collection)

(item可以是collection本身,item可以是collection的collection)

我的约束是 id_collection > id_item(以防止某些循环 - 第一步)

所以在插入之前我需要知道“Max(Max(id_item), Max(id_collection))”

我可以通过这样做得到它们的 2 个值。但不能得到最大的这个:

SELECT max(id_collection)
FROM material

UNION

SELECT max(id_item)
FROM Material

我也试过这样做:

    DELIMITER $$ 

CREATE PROCEDURE `findmax`
(
)
BEGIN

DECLARE max_item SMALLINT;
DECLARE max_collection SMALLINT;
DECLARE max_of_both SMALLINT;

SELECT MAX(id_item)
INTO max_item
FROM material

SELECT MAX(id_collection)
INTO max_collection
FROM material

SET max_of_both = MAX(max_item, max_collection)
END$$

DELIMITER ;

我的汽油用完了。有人有想法吗?

最好的问候,

错误

注意2 个关于无环图的有用资源:

最佳答案

您应该能够使用 GREATEST() MySQL 中的函数。

试试这个:

SELECT GREATEST(
(SELECT MAX(id_item) FROM material),
(SELECT MAX(id_collection) FROM material));

这将选择最大的项目,无论是 MAX(id_item) 还是 MAX(id_collection)。

编辑

一些看起来更干净的东西。 GREATEST() 函数采用传递给它的最大参数,因此如果您单独使用它,它会返回表中有多少行,但选择 id_item 或 id_collection,无论哪个更大。也就是说,您可以将 GREATEST 包装在 MAX() 中以实现相同的任务:

SELECT MAX(GREATEST(id_item, id_collection))
FROM material;

这是一个 SQL Fiddle两者的例子。

关于mysql - MYSQL 上的 Max of Max,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30019534/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com