gpt4 book ai didi

mysql - 按匹配变量的多列排序

转载 作者:行者123 更新时间:2023-11-29 00:54:05 24 4
gpt4 key购买 nike

我目前有这个 mysql 语句:

SELECT * FROM tablename
WHERE column1 = 'yes'
ORDER BY
CASE column2 WHEN 'premium' THEN 1
WHEN 'basic' THEN 2
ELSE 999
END,
customer_id ASC

我想在组合中添加另一列....所以这是我最终想做的。

ORDER BY:
column2 = premium
THEN
column2 = basic
THEN
column3 = specialcustomer
THEN
display remaining results according to customer_id ASC

所以输出,按照我希望它出现的顺序。

John Doe - 高级,莎莉琼斯 - 溢价,吉姆史密斯 - 基本 - 特殊客户,Don Johnson - 基本 - notspecialcustomer,Mary Lee - 基本 - notspecialcustomer

最佳答案

SELECT * FROM tablename
WHERE column1 = 'yes'
ORDER BY
CASE column2 WHEN 'premium' THEN 1
WHEN 'basic' THEN 2
ELSE 999
END,
IF(column3 = 'specialcustomer', 1, 2),
customer_id ASC

column3 = 'specialcustomer' 是应该在 specialcustomer 时返回 true 的支票。

order by 部分发生的事情是你可以把它想象成 3 个额外的虚拟列,它们从这些表达式中获取各自的值:1) case ... 2) if ... 3) customer_id

然后数据行按这些列值按顺序排序。

关于mysql - 按匹配变量的多列排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6934147/

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