gpt4 book ai didi

MySQL查询返回的行数比预期多,我如何只返回每组中一列的最高值?

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

此查询需要返回每组“sheet_ID”列中“revision”列具有最高值的所有行。当我不执行 OR 语句时它工作正常,但我需要能够使用它们。输入字段用于“商品编号”,or 语句需要从可能的 10 列中提取该编号。

这是我的查询语句:

SELECT item_no, item_no1, item_no2, item_no3, item_no4, item_no5, item_no6,
item_no7, item_no8, item_no9, style, vendor_code, pgc, buyer, brand,
product_name, sheet_ID, revision, id
FROM product_sheets
WHERE item_no LIKE '$value' or item_no1 LIKE '$value' or
item_no2 LIKE '$value' or item_no3 LIKE '$value' or
item_no4 LIKE '$value' or item_no5 LIKE '$value' or
item_no6 LIKE '$value' or item_no7 LIKE '$value' or
item_no8 LIKE '$value' or item_no9 LIKE '$value' AND
revision IN (SELECT MAX(revision)
FROM product_sheets
GROUP BY sheet_ID
);

最佳答案

您必须在 条件周围使用方括号,如果没有它们,则只有最后一个条件 item_no9 LIKE '$value'IN 的 AND 运算符相关 条件。

WHERE (item_no LIKE '$value' or item_no1 LIKE '$value' or
item_no2 LIKE '$value' or item_no3 LIKE '$value' or
item_no4 LIKE '$value' or item_no5 LIKE '$value' or
item_no6 LIKE '$value' or item_no7 LIKE '$value' or
item_no8 LIKE '$value' or item_no9 LIKE '$value'
)

此外,将 IN 条件更改为以下内容。
您不希望不是其sheet_ID 最大修订版的修订版与另一个sheet_ID 最大修订版相匹配。

      AND (sheet_ID,revision) IN (SELECT sheet_ID,MAX(revision)
FROM product_sheets
GROUP BY sheet_ID
);

关于MySQL查询返回的行数比预期多,我如何只返回每组中一列的最高值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41169220/

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