しぃぶろぐ。

仕事とか技術関係のこと。

Mysqlのプロシージャで配列を使いたかった件

すでに定形になっておりますが、お久しぶりです。元気です。

 

で、今回はMysqlのプロシージャで配列が使えなかったのでどうしたかという内容です。

というか使えないんですね…。半日ぐらいどうにかならないかと考えこんじゃいましたよorz

 

やりたかったのは、

where in (***,***,***) の*******をプロシージャの外から渡したかったのです。

最初は素直に、プロシージャのinに 111,222,333 といれたら、

in('111,222,333') とされてしまいました。

ひとまとめです。なんてこと。

色々(半日ぐらい)調べてみましたが、結局プロシージャに直接渡すことはできませんでした。

 

今やってるのは、Excelマクロ→webapi→プロシージャ→Excel

なので、webapiでごにょごにょしてみました。

Excelマクロからは111,222,333でAPIをキック

受け取ったPHPがtmpテーブルに

111
222
333

とインサート。

インサート後にプロシージャをキック。

プロシージャ側では

where なんとか in( select ごにょ from tmpテーブル) としました。

プロシージャの最後に忘れずにtmpテーブルは空にしましょう。

次のリクエストとごっちゃになってえらいことなります。

 

文字列をそのままinに放り込みたかっただけなのに、えらい遠回りです。。。

プロシージャで配列使えればいいのになぁ。

そこまでプロシージャに求めちゃだめか。。。orz