MySQLでデータを間引く簡単な方法

投稿者: | 2013年3月14日

データ自体はかなり細かく保存されているが、欲しいのは大まかなデータで良い時、
select文で条件をいろいろつけて取り出すのもひとつの方法だが、まずは一気に取得してしまってから、出力する前に間引くというのもひとつの方法。

例えば、カラムにタイムスタンプがあれば、以下の方法で、同一分は一度だけ出力することができる。

$output = "";
while($col = $rst->fetchRow(MDB2_FETCHMODE_ASSOC)){
$update_jf = date("Hi", $col['time']);
if($update_jf != $sumi_jf){
$output .= $col['main'];
}
#出力済時分にセット
$sumi_jf = $update_jf;
}

さらに簡単にしたいなら、以下の方法(2分の1に間引き)

$output = "";
while($col = $rst->fetchRow(MDB2_FETCHMODE_ASSOC)){
if($n % 2 == 0){
$output .= $col['main'];
}
$n++;
}

3分の1に間引きたければ以下の方法

$output = "";
while($col = $rst->fetchRow(MDB2_FETCHMODE_ASSOC)){
if($n % 3 == 0){
$output .= $col['main'];
}
$n++;
}