gpt4 book ai didi

mysql - 仅选取 WHERE 子句内 IF 语句中的第一个值

转载 作者:行者123 更新时间:2023-11-29 17:56:15 24 4
gpt4 key购买 nike

我有一个这样的查询:

... WHERE ... AND (IF(category.discount_value > 0, product_sizes.product_price * (1-category.discount_value/100),
IF(sub_category.discount_value > 0,product_sizes.product_price * (1-sub_category.discount_value/100),
IF(discount.product_id = product.id AND discount.from_date < now() AND discount.to_date >= now() AND discount.status = 1, product_sizes.product_price * (1-discount.percent/100),product_sizes.product_price)
)
)) >= 100 ...

请注意,这是查询的一部分,它是一个很长的查询,因此我试图使其更容易理解我的问题。

并考虑表product_sizes:

product_id | price
1 | 50
1 | 110

基本上,我会检查该类别是否有折扣,如​​果没有折扣,我会检查子类别是否有折扣,最后如果两者都为假,则检查该商品本身是否有折扣。

问题是,我希望在此处的代码中使用 product_sizes.price 时获取第一项(价格 50),并将其用作最大值/最小值,因此在这种情况下,它不会显示在结果中,但现在大多数情况下都采用最后一个值。

我尝试添加别名,但无法在 WHERE 子句中使用该别名,并且 HAVING 子句解决方案会忽略 GROUP BY 所以它也不起作用。

此外,子查询无法使用父查询中的值,因此它对我不起作用。我也使用查询本身给出的 product.id

希望您能理解问题所在。我正在寻找类似函数或类似 FIRST_V(product_sizes.product_price) 的东西。

提前致谢。

最佳答案

select price from (select product_id,min(price) as price from product_sizes group by product_id)

关于mysql - 仅选取 WHERE 子句内 IF 语句中的第一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48794187/

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