我有一个表(用户),其中包含如下列:
userid name email system_photo personal_photo photo_select
photo_select
可以有两个值(1 或 0)。我想根据photo_select
值选择system_photo
或personal_photo
。如果 photo_select
为 1
,则应选择 personal_photo
,否则如果 photo_select
为 0
然后应选择 system_photo
。
system_photo
值来自另一个服务。如果用户不喜欢那张照片,他/她可以上传一张新照片。改天,她/他将能够在两张照片之间切换。
我首先选择了所有三列,并且在我的代码的 View 部分,我写了
if($user->photo_select === '0')
echo $user->system_photo;
else if($user->photo_select === '1')
echo $user->personal_photo;
但后来我认为这是一种昂贵的方式。我决定在模型部分只选择一个照片列(system_photo
或 personal_photo
)。我的 MySQL SELECT
语句应该如何实现?
最佳答案
您可以执行以下操作:
select *, if(photo_select = 0, system_photo,personal_photo) as photo
from users
您可以在您的查询中使用 if 语句,如果它是真或假,您将选择 1 列或另一列....然后最后您将其转换为您想要的任何名称......照片
关于php - 如何根据MySQL中的另一列有条件地选择列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30773505/