请问mysql 如何实现根据 条件查询不同字段下的值

 id  name                day        pic_1                pic_2
 2  临时工               1         5964944ddddb8.png  5964944dde970.png    
 3  正式工               3         596494671f4aa.png  596494672044b.png    
 4  优秀员工             7         596494b16f6e6.png  596494b17029e.png    
 5  组长                30         596494c04d370.png  596494c04eec8.png    
 6  主管                60         596494cc90c4e.png  596494cc923be.png    
 7  经理                90         596494da5fa53.png  596494da6060b.png    
 8  场主               180         596494ea20e08.png  596494ea22578.png    
 9  大佬               365         596494fa53a3f.png  596494fa551af.png    
 
 请问大佬 现在有一张表 需要根据 条件day 的不同 ,查询pic_1 或者pic_2的字段值
 例如 day >= 6  或者 day <= 9 的时候 ,请问应该怎么写sql语句
 
阅读 10.6k
1 个回答

使用 case when 语句

SELECT            
    case          
    when day =6 then pic_1
    when day =9 then pic_2
    else ‘’      
    end                 
from   table     

示例:

mysql> select * from user;
+----+------+-------+-------+
| id | day  | pic_1 | pic_2 |
+----+------+-------+-------+
|  1 |    6 | a     | b     |
|  2 |    9 | a     | b     |
+----+------+-------+-------+
2 rows in set (0.00 sec)

mysql> SELECT id, day, case when day=6 then pic_1 when day=9 then pic_2  else  pic_1  end as pic from   user;
+----+------+------+
| id | day  | pic  |
+----+------+------+
|  1 |    6 | a    |
|  2 |    9 | b    |
+----+------+------+
2 rows in set (0.00 sec)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题