猿问

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

我创建了一个带有表单的基本网站。此表单从用户那里捕获以下信息并将其存储在 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;


慕标琳琳
浏览 174回答 3
3回答

回首忆惘然

SELECT     UserID,     UserForeName,     UserSurname,     UserTitle,     UserDescription,     CASE WHEN showemailcondition THEN UserEmailAddress ELSE '' END `Email`FROM Users这就是您将如何以简单的方式使用 CASE WHEN 的方式。

犯罪嫌疑人X

您可以使用,union 但为此您必须使用相同数量的列,以便您可以使用 '' 空白字符串在两个选择中制作相同数量的列&nbsp;SELECT UserID, UserForeName, UserSurname, UserTitle, UserDescription&nbsp;,col1,col2 ---coln FROM Users&nbsp;where EmailReveal = 'yes'&nbsp;union&nbsp; SELECT UserID, UserForeName, UserSurname, UserTitle, UserDescription ,&nbsp;'',''--''&nbsp;FROM Users&nbsp;where EmailReveal <> 'yes'

料青山看我应如是

请试试这个查询:$sql&nbsp;=&nbsp;"SELECT&nbsp;UserID,&nbsp;UserForeName,&nbsp;UserSurname,&nbsp;UserTitle,&nbsp;IF(UserEmailAddress&nbsp;=&nbsp;'Yes',UserDescription,'')&nbsp;AS&nbsp;UserDescription,UserEmailAddress&nbsp;FROM&nbsp;Users";
随时随地看视频慕课网APP
我要回答