gpt4 book ai didi

mysql - 使用 CASE 后无法按超过 1 列对 sql 中的结果进行排序

转载 作者:搜寻专家 更新时间:2023-10-30 23:04:13 25 4
gpt4 key购买 nike

以前,我的 SQL 代码(看起来像这样)运行良好(它选择所有符合条件的行,然后首先按 column_5 排序,或者更确切地说是第五个字段,然后是 column_6)

SELECT *
FROM table
WHERE column_2="blah" AND column_4=34
ORDER BY column_5,column_6

但是,我希望将特定结果放在首位,所以我使用了 CASE 命令,但是当我这样做时,我无法再按超过 1 列的方式对其余结果进行排序。例如,以下代码将起作用:

SELECT *
FROM table
WHERE column_2="blah" AND column_4=34
ORDER BY CASE WHEN column_3= 'blah' THEN '1'
ELSE column_4 end

但这不起作用=>

SELECT *
FROM table
WHERE column_2="blah" AND column_4=34
ORDER BY CASE WHEN column_3= 'blah' THEN '1'
ELSE column_4, column_2 end

column_2 周围的逗号附近出现语法错误。就像我在执行 CASE 命令后无法按多列排序一样。有人知道我做错了什么吗?我该如何解决?

最佳答案

SELECT *
FROM your_table
ORDER BY CASE WHEN column_3 = 'blah'
THEN 1
ELSE 2
END,
column_4,
column_2

关于mysql - 使用 CASE 后无法按超过 1 列对 sql 中的结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28758470/

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