すでに定形になっておりますが、お久しぶりです。元気です。
で、今回は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