
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,'');
No.1ベストアンサー
- 回答日時:
これでよくない?
select t1.*,if(isnull(t2.mysequence),0,1) as myflg from mymagazine as t1
left join (select distinct mysequence from mymagazine order by mysequence desc limit 3) as t2
on t1.mysequence=t2.mysequence
yamabejpさん、うまくいきました、ありがとうございました!
マスター(mymaster)とも接続したくて、
~~mymagazine as t1, mymaster as t3 としてて30分ハマりました(^^;;;
~~ on t1.mysequence=t2.mysequence, mymaster as t3
とするのが正解だったのですね(激恥)
ともかく非常に助かりました、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mysqlがインストールされている...
-
mysqlのupdate構文についての質...
-
エラー 1068 (42000): 複数の主...
-
データベースの接続に失敗して...
-
#1062 - '0' は索引 'PRIMARY' ...
-
[XAMPP Control Panel v3.2.4] ...
-
同一日に複数レコードがある場...
-
MAMP 99ドル約1.6万円 高い...
-
あってますか?SQL
-
WHERE `年月日` = '晴' OR `年...
-
SQLです教えてくださいお願いし...
-
SQLを作ったのですがうまくいき...
-
(初心者)MySQLやmaraDBで、crea...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてください。
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
utf8bomとutf8mb4の違いがいま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
#1062 - '0' は索引 'PRIMARY' ...
-
mysqlがインストールされている...
-
エラー 1068 (42000): 複数の主...
-
mysqlのupdate構文についての質...
-
SQLでカラムを追加し、条件に合...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
テーブル名が可変の場合のクエ...
-
utf8bomとutf8mb4の違いがいま...
-
(初心者)MySQLやmaraDBで、crea...
-
MAMP 99ドル約1.6万円 高い...
-
SQLを作ったのですがうまくいき...
-
SQLで漢字名称を都道府県や市区...
-
同一日に複数レコードがある場...
-
SQLです教えてください。
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
あってますか?SQL
-
SELECT * FROM `生徒名簿` INNE...
-
初心者Mysqlの関数のsubstring...
おすすめ情報