在mysql中创建一个复杂的变量

时间:2012-12-18 09:58:31

标签: mysql variables select

我的MySQL语法有问题。我已经生成了一张真正的飞机飞行和假想的飞机飞行表:

Flight_ID   Imaginary
12345678       0
12345678       1
12345678       1
12345678       1
23456789       0
23456789       1
23456789       1
etc......

虚构航班与生成它们的真实航班具有相同的Flight_IDImaginary列表示它是真实的0还是虚构的1航班。

我需要创建一个名为Type的新变量,它将指示它是真正的航班,还是option1,option2,option3 ......

我找不到合适的语法来创建这些option1,option2,option3 modalitites。

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT Flight_ID, Imaginary, IF(Imaginary=0, @img:=0, TRUE) ignoreThisCol, 
       IF(Imaginary=0, 'real flight', CONCAT('option',  @img:=@img+1)) flightType , 
       IF(Imaginary=0, @curFlight:=Flight_ID, TRUE) ignoreThisCol
FROM flights, (SELECT @curFlight:=0, @img:=0) a
ORDER BY Flight_ID, Imaginary