php - 如何根据MySQL中的另一列有条件地选择列

标签 php mysql

我有一个表(用户),其中包含如下列:

userid  name  email  system_photo  personal_photo  photo_select

photo_select 可以有两个值(1 或 0)。我想根据photo_select 值选择system_photopersonal_photo。如果 photo_select1,则应选择 personal_photo,否则如果 photo_select0然后应选择 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_photopersonal_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/

相关文章:

php - 使用jQuery进行快速AJAX请求会导致SyntaxError

php - 在用 PHP 发送邮件时,不需要的符号(如 = 和 3D)出现在收件人的一端

php mysql 没有返回所需的整数,简单错误

mysql - SQL 复合查询 if-else 或 Case 语句

php - "Cannot log in to the MySQL server",没有在 CentOS7 上使用 phpMyAdmin 的代码

php - 使用 javascript 和 php 上传 HTML5 图像

php - 正则表达式 - 匹配所有具有可选属性的 anchor

javascript if 语句在传递获取值时不起作用

mysql - 从查询 : "SHOW TABLE STATUS FROM ` DB`"? 中仅选择一列

mysql - 需要具体的 SQL 查询优化帮助