如何巧妙地在MySQL中创建key->值映射?

时间:2014-01-07 03:35:23

标签: mysql

我想从syslog中查询severity / facility,然后从number转换为有意义的关键字,如下所示:

select case severity 
when 0 then 'emerg'
when 1 then 'Alert'
when 2 then 'Crit'
when 3 then 'Error'
when 4 then 'Warn'
when 5 then 'Notice'
when 6 then 'Info'
when 7 then 'Debug'
end,   

case facility
when 0 then 'kern'
when 1 then 'user'
...
when 23 then 'local7'
end
from logs.sys_log;

严重程度范围为0到7,设施范围为0到23。 我会得到一个很长的查询字符串。 有没有更聪明的方法在MySQL中创建key->值映射,以缩短查询字符串?

1 个答案:

答案 0 :(得分:3)

使用两列创建新表severity_mappingfacility_mapping

将数据0-emerg等存储到第一个表格,将0-kern存储到第二个表格。稍后,在查询中使用JOIN子句。