【发布时间】:2010-10-25 08:41:23
【问题描述】:
我很确定我在某处看到过这个,但我找不到正确的术语,所以我遇到了麻烦......
假设我有一个包含用户信息的表(我们还假设它是由比我获得更多报酬的人创建的,因此修改架构不是一种选择。)在用户信息的各个列中,DOB 列和职称。我想要一个查询,根据这些列中的内容,将包含一个名为“Real_Title”的额外列,例如:
User_id Job_Title DOB
joe_1 manager 01/01/1950
jim_1 associate 01/01/1970
jill_1 associate 01/01/1985
jane_1 manager 01/01/1975
查询:
SELECT User_id, Real_Title FROM users
IF (YEAR(DOB) < 1980 AND Job_Title = "manager")
{Real_Title = "Old Fart"}
ELSE IF (YEAR(DOB) < 1980 AND Job_Title = "associate")
{Real_Title = "Old Timer"}
ELSE IF (YEAR(DOB) > 1980 AND Job_Title = "manager")
{Real_Title = "Eager Beaver"}
ELSE IF (YEAR(DOB) > 1980 AND Job_Title = "associate")
{Real_Title = "Slacker"}
我知道上面不仅是错误的,而且编码效率很低,但我想把这个想法传达出去。
有没有一种方法可以在不使用连接的情况下根据同一个表中一个或多个其他列中的信息填充一列?
目前,在获得结果后,我在 PHP 脚本中使用某些东西将这些结果引导到我想要的组中,但如果可以在查询中完成,那将使查询移植到其他脚本和语言很多更容易。
谢谢!
【问题讨论】:
-
检查我的年龄并注意我充其量是个老前辈。
标签: mysql database syntax conditional