0
私は次の形式を持っているMySQLでクエリを作成したいと思います:CASE文をSQLでどのように反復処理できますか?
SELECT *,
CASE
WHEN <column name> = 1 THEN 1
ELSE 0
END as "column_1",
CASE
WHEN <column name> = 2 THEN 1
ELSE 0
END as "column_2",
CASE
WHEN <column name> = 3 THEN 1
ELSE 0
END as "column_3"
FROM <table name>;
私は例が多数(約千例)のために、このクエリを記述したいと思い、1000のに新しい列があるように、上記の条件を満たすように作成されます。上記のように手動で各行を記述する必要がないように、このプロセスをmySQLで反復処理するにはどうしたらよいですか(わずか3つのケースがあります)。
ストアドプロシージャまたは外部のスクリプトプログラムで反復処理を行い、SQLを動的に記述します。書かれたら、動的に作成されたSQL文を実行します。 – JNevill
上記のテキストを任意のスクリプト言語で生成すると、MySqlが行います。 – Serg
トピックから少し外れています:ブール式は暗黙的に0または1に評価されます。つまり、「WHEN = 1 THEN 1 ELSE 0 END'」は単に「 = 1」に減らすことができます。また、フィールド名は通常、二重引用符ではなくバッククォートで囲まれています。 –
shmosel