Difference between revisions of "Template:Card query"

From Yugipedia
Jump to: navigation, search
(fix MAXIMUM ATK column determination (the value of `$cq_medium` is always lowercase))
(use format-count queries to auto-determine list type if it isn't specified via the `{{{type}}}` parameter (this didn't simplify as much as I hoped, unfortunately))
Line 78: Line 78:
 
   | faq        = faq
 
   | faq        = faq
 
   | #default  = {{ #if: {{{type|}}} | {{ #vardefine: $cq_card_type_unknown | 1 }} }}
 
   | #default  = {{ #if: {{{type|}}} | {{ #vardefine: $cq_card_type_unknown | 1 }} }}
 +
  }}
 +
}}{{ #vardefine: $cq_card_type | {{ #var: $cq_card_type | {{ #vardefine: $cq_monster_count | {{ #ask: {{ #var: $cq_medium_query }}{{ #var: $cq_query }}[[Card type::Monster Card]] | format=count }}
 +
    }}{{ #vardefine: $cq_nonmonster_count | {{ #ask: {{ #var: $cq_medium_query }}{{ #var: $cq_query }}[[Concept:Non-monster cards]] | format=count }}
 +
    }}{{ #vardefine: $cq_spell_count      | {{ #ask: {{ #var: $cq_medium_query }}{{ #var: $cq_query }}[[Card type::Spell Card]] | format=count }}
 +
    }}{{ #vardefine: $cq_trap_count      | {{ #ask: {{ #var: $cq_medium_query }}{{ #var: $cq_query }}[[Card type::Trap Card]] | format=count }}
 +
    }}{{ #switch: {{ #ifexpr: {{ #var: $cq_monster_count }} > 0 | 1 | 0 }}/{{ #ifexpr: {{ #var: $cq_spell_count }} > 0 | 1 | 0 }}/{{ #ifexpr: {{ #var: $cq_trap_count }} > 0 | 1 | 0 }}{{ #ifexpr: {{ #var: $cq_nonmonster_count }} > 0 | 1 | 0 }}
 +
    | 0/0/0/0 | 0/0/0/1 | 0/1/0/1 | 0/0/1/1 | 0/1/1/1 = non-monster<!-- maybe split out the no spell/trap case later to allow auto-determination of other stuff -->
 +
    | 1/0/0/0 = monster
 +
    | 0/1/0/1 = {{ #ifexpr: {{ #var: $cq_nonmonster_count }} = {{ #var: $cq_spell_count }} | spell | non-monster }}
 +
    | 0/0/1/1 = {{ #ifexpr: {{ #var: $cq_nonmonster_count }} = {{ #var: $cq_trap_count }}  | trap  | non-monster }}
 +
    | #default = monster<!-- if you get here you need to specify {{{type}}}; maybe one day {{Card query}} will have better handling for mixed-type lists -->
 +
    }}
 
   }}
 
   }}
 
}}{{ #vardefine: $cq_card_type_query | {{ #switch: {{ #var: $cq_card_type }}
 
}}{{ #vardefine: $cq_card_type_query | {{ #switch: {{ #var: $cq_card_type }}
Line 96: Line 108:
 
   | strategy    = [[Card type::Strategy Card]]
 
   | strategy    = [[Card type::Strategy Card]]
 
   | faq        = [[Card type::FAQ Card]]
 
   | faq        = [[Card type::FAQ Card]]
  }}
 
}}{{ #vardefine: $cq_card_type | {{ #var: $cq_card_type | {{ #if:
 
    {{ #pos: {{ #var: $cq_query_lc }} | primary type:: }}
 
    {{ #pos: {{ #var: $cq_query_lc }} | secondary type:: }}
 
    {{ #pos: {{ #var: $cq_query_lc }} | attribute:: }}
 
    {{ #pos: {{ #var: $cq_query_lc }} | {{!((}}type:: }}
 
    {{ #pos: {{ #var: $cq_query_normalized }} | level:: }}
 
    {{ #pos: {{ #var: $cq_query_normalized }} | rank:: }}
 
    {{ #pos: {{ #var: $cq_query_normalized }} | stars:: }}
 
    {{ #pos: {{ #var: $cq_query_lc }} | pendulum scale:: }}
 
    {{ #pos: {{ #var: $cq_query_lc }} | link arrows:: }}
 
    {{ #pos: {{ #var: $cq_query_normalized }} | {{!((}}atk }}
 
    {{ #pos: {{ #var: $cq_query_normalized }} | {{!((}}def }}
 
    {{ #pos: {{ #var: $cq_query_lc }} | link rating:: }}
 
    {{ #pos: {{ #var: $cq_query_lc }} | maximum atk:: }}
 
    {{ #pos: {{ #var: $cq_query_lc }} | belongs to::extra deck }}
 
    | monster
 
    | {{ #if: {{ #pos: {{ #var: $cq_query_lc }} | property:: }} | non-monster }}
 
    }}
 
 
   }}
 
   }}
 
}}{{ #vardefine: $cq_concept_query | {{ #switch: {{ #var: $cq_medium }}/{{ #var: $cq_card_type }}
 
}}{{ #vardefine: $cq_concept_query | {{ #switch: {{ #var: $cq_medium }}/{{ #var: $cq_card_type }}

Revision as of 18:38, 7 May 2023

SQLStore debug output
ASK Query
[[Card type::Monster Card]]
SQL Query
SELECT DISTINCT
  t0.smw_id AS id,
  t0.smw_title AS t,
  t0.smw_namespace AS ns,
  t0.smw_iw AS iw,
  t0.smw_subobject AS so,
  t0.smw_sortkey AS sortkey, t0.smw_sort,
  t0.smw_title,
  t0.smw_subobject
FROM
  `smw_object_ids` AS t0
INNER JOIN
  `smw_di_wikipage` AS t1 ON t0.smw_id=t1.s_id
WHERE
  (t1.p_id='596' AND t1.o_id='1389')
  AND t0.smw_iw!=':smw'
  AND t0.smw_iw!=':smw-delete'
  AND t0.smw_iw!=':smw-redi'
ORDER BY
  t0.smw_sort ASC,
  t0.smw_title ASC,
  t0.smw_subobject ASC
LIMIT
  55
OFFSET
  0
SQL Explain
IDselect_typetabletypepossible_keyskeykey_lenrefrowsExtra
1SIMPLEt1refs_id,o_id,p_id,s_id_2,s_id_3,o_id_2,o_id_3o_id_25const71526Using where; Using temporary; Using filesort
1SIMPLEt0eq_refPRIMARY,smw_id,smw_iw,smw_iw_2PRIMARY4ygowiki.t1.s_id1Using where
Auxilliary Tables
No auxilliary tables used.
Query Metrics
Query-Size:2
Query-Depth:1
Errors and Warnings
None
  • #ask query: [[Card type::Monster Card]]
  • $cq_query:
  • $cq_query_lc:
  • $cq_query_normalized:
  • $cq_medium:
  • $cq_medium_query:
  • $cq_query_medium:
  • $cq_card_type: monster
  • $cq_card_type_query: [[Card type::Monster Card]]
  • $cq_concept_query:
  • $cq_col_card_type: ?Card type =
  • $cq_col_primary_type: ?Primary type
  • $cq_col_secondary_type: ?Secondary type
  • $cq_col_attribute: ?Attribute = [[Attribute]]
  • $cq_col_type: ?Type = [[Type]]
  • $cq_col_level/rank/link: ?Stars string = [[Level]]/<br />[[Rank]]
  • $cq_col_scale: ?Pendulum Scale = [[Pendulum Scale|Scale]]
  • $cq_col_link_rating:
  • $cq_col_atk: ?ATK string = [[ATK]]
  • $cq_col_def: ?DEF string = [[DEF]]
  • $cq_col_maximum_atk:
  • $cq_col_card_type_st:
  • $cq_col_property:
  • {{{extra_column}}}:
  • {{{extra_column2}}}:
  • $cq_col_extra:
  • $cq_col_extra_2:
  • limit: 50
  • $cq_sort: #
  • $cq_order:
  • $cq_default:
  • $cq_count: 44962