計算結果でtrueならフラグをつけるSELECT文
MySQL5に、以下のような月刊雑誌目次データがあります。
mysequenceが通巻第●号、のような数字を表しています。
最新の3号(あるいは6号、12号)だったら
仮想カラム myflg=1と印をつけるSELECT文をご教示
いただけないでしょうか。
データ例では138~236号と途中を省略しまくってますが
実際は1号から数百号まであり、最新の3冊(あるいは6冊、12冊)
だったら、
if ($myflag = 1 ){
echo "<img src='./image/最新の3号.gif'>";
}
みたいな使い方をしたい次第です、よろしくお願い致します。
select *, (if( select (max(mysequence) - 3),1,0 ) as myflg) from mymagazine
みたいな雰囲気かと思いますが、left joinとか難しい照会が
必要でしょうか。よろしくお願い致します。
create table mymagazine (
mycode int(5) unsigned not null auto_increment comment '管理コード',
mypubyear int(4) default null comment '発行年',
mypubmonth int(2) default null comment '発行月',
mysequence int(3) default null comment '号',
mysortno int(2) default null comment '巻毎のソート番号',
mycategorycode int(2) default null comment '分類コード',
mytheme varchar(900) default null comment 'テーマ',
primary key( mycode )
) engine=InnoDB default charset=utf8 auto_increment =1;
insert into mymagazine ( mypubyear , mypubmonth , mysequence , mysortno , mycategorycode , mytheme )values(2005,7,138,1,99,''),(2005,7,138,2,1,'サッカー'),(2005,7,138,3,1,'サッカー'),(2005,7,138,14,16,''),(2005,7,138,15,15,''),(2005,8,139,4,1,'野球'),(2005,8,139,5,1,'野球'),(2005,8,139,17,17,''),(2005,8,139,18,17,''),(2005,9,140,1,99,''),(2005,9,140,2,1,'テニス'),(2005,9,140,3,1,'バスケ'),(2005,9,140,4,1,'バスケ'),(2005,9,140,5,1,'バスケ'),(2005,9,140,6,1,'水泳'),(2005,9,140,7,2,''),(2005,9,140,8,14,''),(2005,9,140,9,13,''),(2005,11,142,2,1,'柔道'),(2005,11,142,3,1,'剣道'),(2005,11,142,4,1,'剣道'),(2005,11,142,5,8,''),(2005,11,142,6,2,''),(2006,1,144,2,1,'卓球'),(2006,1,144,3,1,'卓球'),(2006,1,144,4,1,'バレー'),(2007,9,236,2,1,'陸上'),(2007,9,236,3,1,'陸上'),(2007,9,236,4,1,'陸上'),(2007,9,236,5,4,'ソフト'),(2007,9,236,6,5,'');