我创建了一个带有表单的基本网站。此表单从用户那里捕获以下信息并将其存储在 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 的方式。
犯罪嫌疑人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'
料青山看我应如是
TA贡献1772条经验 获得超8个赞
请试试这个查询:
$sql = "SELECT UserID, UserForeName, UserSurname, UserTitle, IF(UserEmailAddress = 'Yes',UserDescription,'') AS UserDescription,UserEmailAddress FROM Users";
- 3 回答
- 0 关注
- 173 浏览
添加回答
举报
0/150
提交
取消