为了账号安全,请及时绑定邮箱和手机立即绑定

如果另一个字段具有特定条件,如何隐藏列值

如果另一个字段具有特定条件,如何隐藏列值

PHP
慕标琳琳 2021-11-05 15:54:19
我创建了一个带有表单的基本网站。此表单从用户那里捕获以下信息并将其存储在 PHPMyAdmin 表中:名字、姓氏、职务、描述、电子邮件地址、显示电子邮件地址(是/否)。输入的一个例子是:大卫贝克汉姆先生,你好,我是男孩,david@hotmail.com,是的同样在网站上,我有一个表格,其中显示了通过使用此 PHP 代码存储在我的数据库中的所有用户的列表:$sql = "SELECT UserID, UserForeName, UserSurname, UserTitle, UserDescription, UserEmailAddress FROM Users";我将如何编辑此 SQL,以便如果用户对“显示电子邮件”字段回答“否”,他们的行将从行中省略他们的电子邮件地址。例如:大卫贝克汉姆先生,你好,我是男孩,david@hotmail.com,是的Lucy, Sky, Mrs, 你好,我是女孩,不我尝试了以下查询,但到目前为止还没有运气:SELECT CASE WHEN EmailReveal = 'yes'        THEN SELECT *        ELSE SELECT UserID, UserForeName, UserSurname, UserTitle, UserDescription   END AS col FROM Users;
查看完整描述

3 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

SELECT 

    UserID, 

    UserForeName, 

    UserSurname, 

    UserTitle, 

    UserDescription, 

    CASE WHEN showemailcondition THEN UserEmailAddress ELSE '' END `Email`

FROM Users

这就是您将如何以简单的方式使用 CASE WHEN 的方式。


查看完整回答
反对 回复 2021-11-05
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

您可以使用,union 但为此您必须使用相同数量的列,以便您可以使用 '' 空白字符串在两个选择中制作相同数量的列


 SELECT UserID, UserForeName, UserSurname, UserTitle, UserDescription 

,col1,col2 ---coln FROM Users

 where EmailReveal = 'yes'

 union

  SELECT UserID, UserForeName, UserSurname, UserTitle, UserDescription ,

 '',''--''

 FROM Users

 where EmailReveal <> 'yes'


查看完整回答
反对 回复 2021-11-05
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

请试试这个查询:

$sql = "SELECT UserID, UserForeName, UserSurname, UserTitle, IF(UserEmailAddress = 'Yes',UserDescription,'') AS UserDescription,UserEmailAddress FROM Users";



查看完整回答
反对 回复 2021-11-05
  • 3 回答
  • 0 关注
  • 173 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信