MySql SelecT CASE然后选择

时间:2013-06-27 01:46:17

标签: case

我有一个问题,如果有人可以帮助我,问题“子查询返回超过1行”

我需要为下拉字段选择驱动程序, 如果驾驶范,那么只选择范司机 如果驾驶Kombi然后选择Kombi和Van司机 如果驾驶Limo然后选择所有司机

SELECT CASE 
WHEN "Van"="Van"      
THEN (SELECT fahrername FROM fahrer WHERE auto = 'Van')
WHEN "Kombi"="Kombi"
THEN  (SELECT fahrername FROM fahrer WHERE auto = 'Kombi' AND auto = 'Van')
ELSE  (SELECT fahrername FROM fahrer)
END    

解决:

我以另一种方式解决了这个问题 无论如何,谢谢

我在汽车司机中添加了新值

Limo - value Limo

Kombi - 价值LimoKombi

和范 - 价值LimoKombiVan

我用LIKE解决了

SELECT
     fahrername
FROM
    fahrer
WHERE
     auto LIKE '%{typauto}%' 

我认为这种方式更容易...... 无论如何,谢谢你

1 个答案:

答案 0 :(得分:0)

如果您想使用user-defined variables

set @vehType='Van'; 
select fahrername from fahrer where @vehType = 'Limo' 
    union select fahrername from fahrer where @vehType = 'Kombi' and auto in ('Kombi','Van') 
    union select fahrername from fahrer where @vehType = 'Van' and auto = 'Van';