Difference between revisions of "Template:Card query"

From Yugipedia
Jump to: navigation, search
(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))
(fix transclusions that don't use {{{type}}} but have a query that can only return nonmonsters (e.g. the query includes `Card type::Spell Card`))
Line 83: Line 83:
 
     }}{{ #vardefine: $cq_spell_count      | {{ #ask: {{ #var: $cq_medium_query }}{{ #var: $cq_query }}[[Card type::Spell Card]] | 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 }}
 
     }}{{ #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 }}
+
     }}{{ #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 -->
+
     <!-- monster/nonmonster/spell/trap -->
 +
    | 0/0/0/0 | 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
 
     | 1/0/0/0 = monster
     | 0/1/0/1 = {{ #ifexpr: {{ #var: $cq_nonmonster_count }} = {{ #var: $cq_spell_count }} | spell | non-monster }}
+
     | 0/0/1/0 | 0/1/1/0 = {{ #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 }}
+
     | 0/0/0/1 | 0/1/0/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 -->
 
     | #default = monster<!-- if you get here you need to specify {{{type}}}; maybe one day {{Card query}} will have better handling for mixed-type lists -->
 
     }}
 
     }}

Revision as of 23:07, 20 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_25const71402Using 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: 44953