gpt4 book ai didi

mysql - 在 ORDER BY CASE 中使用 LIKE 的 SQL

转载 作者:行者123 更新时间:2023-11-29 11:44:33 28 4
gpt4 key购买 nike

我需要这样排序:
第一个结果都是以 CHA 开头,然后是 MAS、DIA、PLA、GOL、SIL、BRO

像这样:
1. 挑战者一号
2. 挑战者一号
3.大师II
4.大师III
5.白金II
6.白金IV
7.白金V
等等。

最重要的是仅按名称排序,而不按末尾的罗马数字排序,但是如果这很容易,如果有人能指出方法,我们将不胜感激。

到目前为止,这是我的 SQL:

  SELECT rank FROM table 
ORDER BY
CASE rank
WHEN rank LIKE 'CHA%' THEN 1
WHEN rank LIKE 'MAS%' THEN 2
WHEN rank LIKE 'DIA%' THEN 3
WHEN rank LIKE 'PLA%' THEN 4
WHEN rank LIKE 'GOL%' THEN 5
WHEN rank LIKE 'SIL%' THEN 6
WHEN rank LIKE 'BRO%' THEN 7
WHEN rank LIKE 'Unranked' THEN 8
WHEN rank LIKE 'No Data' THEN 9
ELSE 10
END;

但是这不起作用。我正在使用 MySQL 数据库。任何帮助表示赞赏。

最佳答案

你拥有的是这样的:

SELECT [rank] FROM table 
ORDER BY
CASE [rank]
WHEN [rank] LIKE 'CHA%' THEN 1
WHEN [rank] LIKE 'MAS%' THEN 2
WHEN [rank] LIKE 'DIA%' THEN 3
WHEN [rank] LIKE 'PLA%' THEN 4
WHEN [rank] LIKE 'GOL%' THEN 5
WHEN [rank] LIKE 'SIL%' THEN 6
WHEN [rank] LIKE 'BRO%' THEN 7
WHEN [rank] LIKE 'Unranked' THEN 8
WHEN [rank] LIKE 'No Data' THEN 9
ELSE 10
END;

你想做的是这样的:

    SELECT [rank] FROM table 
ORDER BY
CASE
WHEN [rank] LIKE 'CHA%' THEN 1
WHEN [rank] LIKE 'MAS%' THEN 2
WHEN [rank] LIKE 'DIA%' THEN 3
WHEN [rank] LIKE 'PLA%' THEN 4
WHEN [rank] LIKE 'GOL%' THEN 5
WHEN [rank] LIKE 'SIL%' THEN 6
WHEN [rank] LIKE 'BRO%' THEN 7
WHEN [rank] LIKE 'Unranked' THEN 8
WHEN [rank] LIKE 'No Data' THEN 9
ELSE 10
END;

关于mysql - 在 ORDER BY CASE 中使用 LIKE 的 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35185717/

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