0

このクエリでは:

set @myVars := '';
SELECT C.Id,
      IF((select count(CA.Id) from mytable_2 CA where CA.IdC=C.Id and CA.IdA=10), 
      @myVars:='option_1' , 
      @myVars:='option_2')  as myTempField
FROM mytable_1 C where CONCAT('fied_',@myVars) = 5

この場合、' CONCAT('fied_',@myVars) ' がクエリするフィールドの名前になったらいいのですが、うまくいきません。

「if」の結果に応じて、質問されるフィールドは「field_option_1」または「field_option_2」でなければなりません

どうすればできますか?

4

1 に答える 1

0

余分な列を追加できます

set @myVars := '';
SELECT
  C.Id,
  IF((select count(CA.Id) from mytable_2 CA where CA.IdC=C.Id and CA.IdA=10), @myVars:='option_1', @myVars:='option_2') as myTempField,
  CONCAT('fied_',@myVars) as AColumn
FROM mytable_1 C
where @myVars = 5

これにより、 id 、 myTempField 、および AColumn が得られます

于 2013-01-30T12:31:17.797 に答える