Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL首选列_Mysql_Sql_Database - Fatal编程技术网

Mysql SQL首选列

Mysql SQL首选列,mysql,sql,database,Mysql,Sql,Database,我有一个MySQL表,它保存有关人员的详细信息,例如: 名字 地址 工作电子邮件 家庭电子邮件 首选电子邮件(“工作电子邮件”或“家庭电子邮件”) 我只想选择他们喜欢的电子邮件。使用SQL有没有一种简洁的方法?还是在我取出数据后就需要这样做?这是一个简单的查询: SELECT PreferredEmail FROM people; 这是一个简单的查询: SELECT PreferredEmail FROM people; 一个简单的case语句应该可以做到这一点: SELECT

我有一个MySQL表,它保存有关人员的详细信息,例如:

  • 名字
  • 地址
  • 工作电子邮件
  • 家庭电子邮件
  • 首选电子邮件(“工作电子邮件”或“家庭电子邮件”)

我只想选择他们喜欢的电子邮件。使用SQL有没有一种简洁的方法?还是在我取出数据后就需要这样做?

这是一个简单的查询:

SELECT PreferredEmail FROM people;

这是一个简单的查询:

SELECT PreferredEmail FROM people;

一个简单的case语句应该可以做到这一点:

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

一个简单的case语句应该可以做到这一点:

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

选择如果(PreferredEmail='WorkEmail',WorkEmail,HomeEmail)作为电子邮件

选择如果(PreferredEmail='WorkEmail',WorkEmail,HomeEmail)作为电子邮件

为什么需要多封电子邮件的列表?如果您正在收集多个电子邮件地址,并且有时可能希望收集多个电子邮件地址,则始终可以创建一个辅助表,该表将用户与其所有可能的电子邮件地址关联,并具有第二列和第三列,该列可以是表示主电子邮件的标志

主表

- UID
- Name
- Address
电子邮件表

- UID
- Email address
- Primary

然后,您可以查询主邮件的标记位置,并在唯一ID上连接到其他邮件。

为什么需要包含多封电子邮件的列表?如果您正在收集多个电子邮件地址,并且有时可能希望收集多个电子邮件地址,则始终可以创建一个辅助表,该表将用户与其所有可能的电子邮件地址关联,并具有第二列和第三列,该列可以是表示主电子邮件的标志

主表

- UID
- Name
- Address
电子邮件表

- UID
- Email address
- Primary

然后,您只需查询主节点的标记位置,并在唯一ID上连接到另一个节点。

!这把戏做得很好。干杯说到SQL,我还是有点傻,不客气!您也可以将答案标记为正确…;-)令人惊叹的!这把戏做得很好。干杯说到SQL,我还是有点傻,不客气!您也可以将答案标记为正确…;-)你似乎误解了这个问题。