Perl DBIのselect系メソッド

久しぶりの記事となってしまいましたが、本当はまとめておきたいことがたくさんあるんです。でも忙しくてなかなか。
でも、俺は「まとまった時間を手に入れた!」のです。
なので書きます。

Perlでmysqlと連携させることが多いので、DBIモジュールをよく使用します。
その中で、SELECTしたときの結果を取り出すのに、たくさんの方法があって困ります。

$dbh->fetch系
$sth->select系
主に分けてこの2種類ですが、今回は$sth->select系のまとめ。

で、まぁ参考にしたサイトはこちら→Perl応用

それを参考にまとめると(パクリじゃないんだからねっ)こんな感じ。

メソッド 結果の取得 結果の取り出し方
selectrow_array 1行目 $result[列番号]
selectrow_arrayref 1行目 $result->[列番号]
selectcol_arrayref 各行1列目 $result->[行番号]
selectall_arrayref 全取得 $result->[行番号]->[列番号]
selectrow_hashref 1行目 $result->{“列名”}
selectall_hashref 全取得 $result->[行番号]->{“列名”}

メソッドの名称からも分かるとおり、arrayなら、配列で結果が返ってきます。
arrayrefなら、配列のリファレンス、hashrefなら、ハッシュ配列のリファレンスで結果が返ってきます。

私はよくselectrow_arrayとかselectall_arrayrefとか使います。
selectrow_arrayは1つめの結果だけが必要なとき、selectrow_arrayrefは全ての結果を1度に取得したいときに。
でももっといいのは、$dbh系のfetch系をwhile文とかで回すのがいいようです。