我創建了一個帶有表單的基本網站。此表單從用戶那里捕獲以下信息并將其存儲在 PHPMyAdmin 表中:名字、姓氏、職務、描述、電子郵件地址、顯示電子郵件地址(是/否)。輸入的一個例子是:大衛貝克漢姆先生,你好,我是男孩,[email protected],是的同樣在網站上,我有一個表格,其中顯示了通過使用此 PHP 代碼存儲在我的數據庫中的所有用戶的列表:$sql = "SELECT UserID, UserForeName, UserSurname, UserTitle, UserDescription, UserEmailAddress FROM Users";我將如何編輯此 SQL,以便如果用戶對“顯示電子郵件”字段回答“否”,他們的行將從行中省略他們的電子郵件地址。例如:大衛貝克漢姆先生,你好,我是男孩,[email protected],是的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 關注
- 186 瀏覽
添加回答
舉報
0/150
提交
取消