【问题标题】:Check 2 fields in a select query检查选择查询中的 2 个字段
【发布时间】:2015-03-12 06:25:47
【问题描述】:

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

会员 | member_id、用户名、电子邮件、密码、域名

email 字段不能是 NULL,但 domain_name 可以是。

在这里,我想进行SELECT 查询以获取用户名和电子邮件或域名。如果特定 member_id 存在 domain_name,那么我不需要选择电子邮件。如果没有,我需要收到电子邮件。

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

SELECT email, username, domain_name 
FROM members
ORDER BY username DESC; 

谁能帮我更新这个选择查询? 谢谢。

【问题讨论】:

标签: php mysql


【解决方案1】:

您可以使用CASE

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

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

【讨论】:

  • 人们通常会遇到这个问题,所以我会抛出一个助手,your_alias 实际上是您在迭代此查询时将使用的列的名称。 $row['your_alias'].
【解决方案2】:

您可以使用mysql中的IF函数

SELECT `username`, 
IF(`domain_name` IS NULL ,`email`, `domain_name`) as `email_or_domain` 
FROM `members`

MySQL IF 函数的语法是:

IF(expr,if_true_expr,if_false_expr)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多