gpt4 book ai didi

mysql - 根据多列对结果行进行排序

转载 作者:可可西里 更新时间:2023-11-01 08:10:26 26 4
gpt4 key购买 nike

我必须记下具有两个值 = 0 的不同字段的行

让我解释一下,所有具有 stock_it=0stock_eu=0 的记录都必须放在结果的底部

我已经使用了这个解决方案,但是,它并不严格正确,因为它甚至放下了两个值都不为 0 的行

$dati = mysql_query("
SELECT *
FROM $tb_article
ORDER BY
FIELD($tb_art.article_status,'n') DESC,
FIELD($tb_art.article_stock_it,'0') ASC,
FIELD($tb_art.article_stock_eu,'0') ASC,
$tb_art.article_rank
");
  1. article_status=n 表示新产品,它们必须保持在顶部!
  2. 将所有有库存 IT 和库存 EU = 0 的文章推到底部(产品不可用)
  3. 最后,按照分配的排名对其余文章进行排序

最佳答案

您可以在 ORDER BY 中使用 CASE 语句,如下所示:

SELECT      * 
FROM $tb_article
ORDER BY
CASE WHEN article_status = 'n' THEN 0
WHEN article_stock_it = 0 THEN 100000
WHEN article_stock_eu = 0 THEN 100000
ELSE article_rank
END

关于mysql - 根据多列对结果行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36085087/

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