gpt4 book ai didi

mysql - 返回 mysql 中最后一个匹配的行

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

我有这张 table

 id | qty_from | qty_to | p_id | price 
--------------------------------------
1 | 1 | 10 | 4 | 1000
--------------------------------------
2 | 11 | 20 | 4 | 2000
--------------------------------------
3 | 1 | 10 | 5 | 500
--------------------------------------
4 | 11 | 20 | 5 | 1000
--------------------------------------
5 | 1 | 10 | 6 | 1000
--------------------------------------
6 | 10 | 15 | 6 | 2000

我尝试使用下面的代码通过 qty_from AND qty_to AND p_id 获取行

SELECT * FROM table WHERE p_id IN ('4', '5', '6') AND qty_from <= 8 AND qty_to >= 8

它返回第一、第三和第五行。
当我使用此代码时,它仅返回第一行和第三行。

SELECT * FROM table WHERE p_id IN ('4', '5', '6') AND qty_from <= 16 AND qty_to >= 16

我也想返回第六行。因为它是 p_id = 6
中最大的数量我怎样才能实现这个目标?

最佳答案

经过讨论后,您需要的是(第一个且未经测试的解决方案):

SELECT * 
FROM (SELECT *, MAX(qty_to) as max_qty_to FROM `limit`) T
WHERE p_id IN ('4', '5', '6')
AND ( ( qty_from <= 16 AND qty_to >= 16 ) OR qty_to = T.max_qty_to )

关于mysql - 返回 mysql 中最后一个匹配的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41278861/

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