SQL Preferred列

时间:2011-12-30 03:05:29

标签: mysql sql database

我有一个MySQL表,其中包含有关人员的详细信息,例如:

  • 名称
  • 地址
  • WorkEmail
  • HomeEmail
  • 首选电子邮件('WorkEmail'或'HomeEmail')

我想只选择他们喜欢的电子邮件。有没有一种巧妙的方法来使用SQL?或者我在提取数据后是否需要这样做?

5 个答案:

答案 0 :(得分:5)

一个简单的案例陈述应该可以解决这个问题:

SELECT 
    Name,
    CASE WHEN PreferredEmail = 'WorkEmail' THEN WorkEmail ELSE HomeEmail END AS Email
FROM
    MyTable

答案 1 :(得分:2)

(Select WorkEmail from MyTable where preferredEmail = 'WorkEmail') 
 Union
(Select HomeEmail from MyTable where preferredEmail = 'HomeEmail') 

答案 2 :(得分:2)

选择IF(PreferredEmail ='WorkEmail',WorkEmail,HomeEmail)AS电子邮件

答案 3 :(得分:0)

为什么需要一个包含多个电子邮件的列表?如果您正在收集多个电子邮件地址,并且您可能在某个时候想要收集多个电子邮件地址,那么您总是可以创建一个将用户与其所有可能的电子邮件地址相关联的辅助表,并使用第二个第三列作为表示的标志主电子邮件。

主表

- UID
- Name
- Address

电子邮件表

- UID
- Email address
- Primary

然后你可以查询主要标记的位置,并在唯一ID上加入另一个。

答案 4 :(得分:-2)

这是一个简单的查询:

SELECT PreferredEmail FROM people;