※何故か記載が全体的にORDER BY句になっていたので修正…
DBIx::SkinnyでGROUP BY句を使う
DBIx::SkinnyでGROUP BY句は使えないっぽい。マニュアルにも無い。Tengでは使えるみたいだけれど。resultsetでSQL組み立てれば出来るのかと思ったのだけれどどうも無理っぽい。
で、ググっていたらテストにそれらしい記述があるのを発見。ただし、DBIx::Skinny::Pager のテスト。
https://github.com/walf443/p5-dbix-skinny-pager/blob/master/t/02-functional.t
$rs->group({ column => ‘カラム名’ });
どうやら groupというメソッドがあるようだ。やっぱりマニュアルに載ってないけど。
作っているwebアプリはページング処理をするために丁度 DBIx::Skinny::Pager を使ってたのでこの方法で。
コード
my $rs = $self->resultset_with_pager('MySQLFoundRows');
$rs->select([qw/
entry_id
entry_title
/]);
$rs->from(['entry']);
$rs->group({ column => 'category' });
$rs->add_where( entry_status => 'public' );
構築されるSQL
SELECT SQL_CALC_FOUND_ROWS entry_id, entry_title
FROM entry
WHERE (entry_status = ?)
GROUP BY category
生SQL使えばいい問題なんだけどね 😛
More from my site
DBIx::Skinny の resultset を使って変な ORDER BY 句を使えるかの実験 WHERE id IN(4,3,1) OREDER BY FIELD(id,4,3,1) こんなSQLの書き方があったのか! RT: MySQL - SELECT ... WHERE id IN (..) - correct orde stackoverflow.com/questions/5090…— クリックテクスさん (@clicktx) […]
DBIx::Customでデータベースの関数(MySQLのADDDATE()とかSUBDATE()とか)を使う DBIx::Customが生SQL感覚でも使えてお気に入りなのだけれど、ちょっこしハマったのでメモ。
DBIx::Custom - search.cpan.org
MySQL(に限らないと思う)でwhereに関数を利用したい時は多々あると思います。
例えば、更新時刻を見て7日以上古ければ選択しないという条件をwhereに指定したい時、
CREATE […]
perl SpeedyCGIでデータベースの接続を永続化する perlスクリプトをSpeedyCGIスクリプトとして動作させる場合、グローバル変数の値は保持され続ける。なので、一度接続したデータベースハンドルを使い回すことでデータベースへの接続コストを削減できる。
テスト用スクリプト
#!/usr/bin/speedy
use strict;
use warnings;
use DBI;
#DB用設定
my […]
MAMPな環境のmacにDBD::mysqlをインストール
OSX El Capitan(10.11.5)
MAMPのバージョン 3.0.7.3 ※1
MySQLのバージョン 5.5.38
MAMPだとWarning (mostly harmless): No library found for […]
連続で大量のデータをINSERTする実験 PERLでMySQLにデータを挿入する実験。
実験スクリプト
INSERT を100万回繰り返す。
for(1..1000000){
$sql = <<"EOM";
INSERT INTO `table_name`
(`col1`,`col2`,`col3`,`col4`) VALUES […]
MAMP(Apache+MySQL)を使ってローカルでらくらくperl開発 MAMP
Apache+MySQLサーバをmacで動作させる事ができる。macにはもともとApacheもperlもインストールされているけど、バージョンが古いし、管理も面倒なのでMANPを使うメリットはおおいにあると思う。もともとはPHP+MySQLのローカル環境を構築するためのもの...かな?
参考:Mac OS Xのローカル環境(MAMP+MacPorts)で […]
Filed under: MySQL,perl,perlモジュール
Trackback Uri
最近のコメント