Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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
Php 选中select查询中的两个字段_Php_Mysql - Fatal编程技术网

Php 选中select查询中的两个字段

Php 选中select查询中的两个字段,php,mysql,Php,Mysql,我有一个名为“members”的mysql表 成员|成员id、用户名、电子邮件、密码、域名 电子邮件字段不能为空,但域名可以为空 在这里,我想进行选择查询,以获取用户名、电子邮件或域名。如果存在特定成员id的域名,则我不需要选择电子邮件。如果没有,我需要收到电子邮件 这是我目前正在使用的查询。但它同时选择了电子邮件和域名 SELECT email, username, domain_name FROM members ORDER BY username DESC; 有人能帮我更新这个sel

我有一个名为“members”的mysql表

成员|成员id、用户名、电子邮件、密码、域名

电子邮件字段不能为空,但域名可以为空

在这里,我想进行
选择
查询,以获取用户名、电子邮件或域名。如果存在特定成员id的域名,则我不需要选择电子邮件。如果没有,我需要收到电子邮件

这是我目前正在使用的查询。但它同时选择了电子邮件和域名

SELECT email, username, domain_name 
FROM members
ORDER BY username DESC; 
有人能帮我更新这个select查询吗?
多谢各位

您可以使用
案例

SELECT 
  username,
  CASE
    WHEN domain_name IS NULL 
    THEN email 
    ELSE domain_name 
  END your_alias 
FROM
  members 
ORDER BY username DESC ;

您的别名可以是您想要指定为列的任何名称它可以是电子邮件或域名

您可以使用
案例

SELECT 
  username,
  CASE
    WHEN domain_name IS NULL 
    THEN email 
    ELSE domain_name 
  END your_alias 
FROM
  members 
ORDER BY username DESC ;

您的别名可以是您想要指定为列的任何名称它可以是电子邮件或域名

您可以在中使用IF功能

MySQL IF函数的语法为:

IF(expr,IF\u true\u expr,IF\u false\u expr)


您可以在中使用IF功能

MySQL IF函数的语法为:

IF(expr,IF\u true\u expr,IF\u false\u expr)


人们通常在这方面有困难,所以我会抛出一个助手,
your\u alias
实际上是迭代此查询时要使用的列的名称
$row['your_alias']
。人们在这方面通常会遇到麻烦,因此我会抛出一个助手,
your_alias
实际上是您迭代此查询时将使用的列的名称
$row['your_alias']
。我不知道您的情况,但我建议在服务器端代码中使用逻辑。@Samosa是的,此逻辑可以在服务器端代码中使用。但如果我在sql查询中使用此逻辑有什么不同呢?原因有很多:-请阅读。。IMHO易变的业务逻辑应该通过服务器端完成。我不知道您的情况,但我建议在服务器端代码中使用逻辑。@Samosa是的,此逻辑可以在服务器端代码中使用。但如果我在sql查询中使用此逻辑有什么不同呢?原因有很多:-请阅读。。IMHO易变的业务逻辑应该通过服务器端完成。