gpt4 book ai didi

mysql - 为列映射记录名称的更简单方法?

转载 作者:行者123 更新时间:2023-11-29 02:01:14 24 4
gpt4 key购买 nike

我目前正在使用 REPLACE 函数来更改几个记录名称(整数到它们相应的人类可读名称),如下所示:

SELECT SUM(COUNT) AS Actions, replace(replace(replace(replace(replace(replace(EVENT, 2, 'iOS'), 1, 'Web'), 3, 'Android'), 4, 'Windows'), 5, 'Mac'), 6, 'Unknown') AS Platform 
FROM `METRICS_WEEKLY`
WHERE EVENT IN (1, 2, 3, 4 ,5 ,6)
GROUP BY EVENT

我想构建一个在 EVENT 列中使用 30 多个数字的查询,并将它们映射到更友好的名称。我无法更改当前表(我不是表架构的创建者)。有没有更简单的方法来映射更多的字段名称?

最佳答案

您描述的是 ENUM data type .将列创建为列表的 ENUM,这样就避免了所有字符串替换。这些值将以整数格式存储,并且必须是可用选项之一,但将显示为它们的等效字符串。

CREATE TABLE `METRICS_WEEKLY` (
`COUNT` INT,
`EVENT` ENUM (
'Web',
'iOs',
'Android',
'Windows'
'Mac',
'Unknown'
)
);

或者,如果列表很短,则根据适当的规范化创建一个表来保存这些值。

关于mysql - 为列映射记录名称的更简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14284709/

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