如果mysql中的条件选择语句

请帮忙解决以下问题.我的表叫做time_schedule.
我的要求是如果start_city_name =’somecity’那么我需要选择departure_time
否则我需要选择arrival_time.在这里,我想要选择哪一个.例如:

SELECT IF(start_city_name='somecity',departure_time,arrival_time) 
   FROM time_schedule;

这里如果条件匹配则选择departure_time.然后我需要选择它作为departure_time.
否则,如果条件失败,则选择arrival_time,然后我需要选择结果作为arrival_time.我正在使用MySQL.提前致谢.

最佳答案
要知道选择了哪一个,您可以执行以下操作:

SELECT IF(start_city_name='somecity', 'Departure time', 'Arrival time'),
       IF(start_city_name='somecity', departure_time, arrival_time)
FROM time_schedule;

你不能真正把它作为列名,如果有一行条件为真而一条条件为假,那么列名应该是什么?

但是,如果您乐意将它们分成两列:

SELECT IF(start_city_name='somecity', NULL, arrival_time) AS 'Arrival time',
       IF(start_city_name='somecity', departure_time, NULL) AS 'Departure time'
FROM time_schedule;

这非常类似于简单地说:

SELECT arrival_time, departure_time
FROM time_schedule;

条件为真时,arrival_time将为NULL,条件为false时,departure_time将为NULL.

转载注明原文:如果mysql中的条件选择语句 - 代码日志