[過去ログ] MySQL 総合 Part26 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
606(3): 2021/05/29(土)07:59 ID:??? AAS
https://i.imgur.com/LFBhs7W.png
このようなデータから火の攻撃UPが2つ以上ついてるデータを選ぶにはどうすればいいですか?
なるべく下記のような総当たり的な記述は避けたいです
(属性1="火" and 効果1="攻撃UP" and 属性2="火" and 効果2="攻撃UP") or ... or (属性3="火" and 効果3="攻撃UP" and 属性1="火" and 効果1="攻撃UP")
607: 2021/05/29(土)12:55 ID:??? AAS
>>606
MySQLには他のDBのようなpivot系の関数がないのでSQLだけでやるなら自分でpivot/unpivotをやるしかない
DB設計を考え直したほうがいいような
SELECT 番号, 属性, 効果, count(*) 件数
FROM (
SELECT 番号, 属性1 属性, 効果1 効果 from スキル効果
union all
SELECT 番号, 属性2 属性, 効果2 効果 from スキル効果
union all
SELECT 番号, 属性3 属性, 効果3 効果 from スキル効果
省4
609(1): 2021/05/29(土)15:38 ID:??? AAS
>>606
正規化して、別のテーブルに分離する。
それから、SELECT COUNT() GROUP BYする。
611(1): 2021/06/07(月)20:17 ID:??? AAS
>>606
もう見てないかな
CASE WHEN (属性1, 効果1) = (‘火’, ‘攻撃UP’) THEN 1 ELSE 0 END +
CASE WHEN (属性2, 効果2) = (‘火’, ‘攻撃UP’) THEN 1 ELSE 0 END +
CASE WHEN (属性3, 効果3) = (‘火’, ‘攻撃UP’) THEN 1 ELSE 0 END >= 2
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.312s*