Select
如果列有值,則選擇列
我在表中有
RegiNum
和EmpNum
列users
。如果 RegiNum 列具有值,則將其視為學生。如果填寫了 RegiNum,我想從該表中選擇名稱和 ID。我用了select if(EmpNum is null,"",ID) as s_id from users where isActive=1;
這僅返回學生的 ID。我如何也可以選擇其他欄位?
這裡有幾個選項。一種是對每一列重複給定的結構:
select if(EmpNum is null,"",ID) as s_id, if(EmpNum is null,"",Name) as s_name, .. etc from users where isActive=1;
這將為表中的每一行返回一行,顯示員工的空字元串和學生的值。
如果目標是只返回學生,更好的解決方案是將過濾器放在 WHERE 子句中:
select ID as s_id, Name as s_name, .. etc from users where isActive=1 and RegiNum is not null; -- students only
使用這種方法,更少的行從數據庫發送到應用程序。