我有一个MySQL表,其中包含有关人员的详细信息,例如:
我想只选择他们喜欢的电子邮件。有没有一种巧妙的方法来使用SQL?或者我在提取数据后是否需要这样做?
答案 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;