如何使用“group by”和“order by”从表中获取特定行
P粉794851975
P粉794851975 2023-09-12 17:54:20
0
1
300

我有一个如下表:

tmp_id 产品可用性(0 和 1) is_available(0 和 1) stock_count(整数) product_id(整数)
1 1 1 0 1
2 1 1 4 1

我需要为每个 product_id 获取第一个可用产品。 可用产品必须首先检查product_availability,然后检查is_available,最后检查stock_count。 (当 product_availability1 时,产品可用,然后 is_available1 并且库存中至少有一种产品1。)

我想先展示可用的产品,如果没有可用的产品,则显示哪个产品并不重要(在不可用的情况下,第一个产品也可以)。

(在上面的示例中,我需要先获取 tmp_id2 的产品。)

问题: 我的问题是如何编写 MYSQL 查询来实现我的需求?

我可以使用以下命令按所需顺序获取我的产品,但我不知道下一步该怎么做才能使用 GROUP BY 获取第一个现有产品:

SELECT
    pa.*
FROM
    `product_advanced` AS `pa`
ORDER BY
    `pa`.`product_availability` DESC,
    `pa`.`is_available` DESC,
    `pa`.`stock_count` DESC
    

注意:当然,这只是我所拥有的内容的简单演示,实际代码更为复杂,并且具有多个联接和其他内容。

P粉794851975
P粉794851975

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!