Difference between revisions of "Template:Card query"

From Yugipedia
Jump to: navigation, search
(store medium+type combinations in Property:((Card query)) medium and type value, except those already covered by a concept)
(support Cross Duel monsters sometimes having both Level and Rank)
(3 intermediate revisions by the same user not shown)
Line 29: Line 29:
 
   | ocg-only    = [[Medium::OCG-only]]
 
   | ocg-only    = [[Medium::OCG-only]]
 
   | tcg-only    = [[Medium::TCG-only]]
 
   | tcg-only    = [[Medium::TCG-only]]
   | rush duel    = [[Medium::Rush Duel]]
+
   | rush duel    = [[Concept:Rush Duel cards]]
 
   | anime        = [[Concept:Anime cards]]
 
   | anime        = [[Concept:Anime cards]]
 
   | anime-only  = [[Category:Anime cards with no OCG/TCG counterpart]]
 
   | anime-only  = [[Category:Anime cards with no OCG/TCG counterpart]]
Line 36: Line 36:
 
   | vg          = [[Concept:Video game cards]]
 
   | vg          = [[Concept:Video game cards]]
 
   | vg-only      = [[Category:Video game cards with no OCG/TCG counterpart]]
 
   | vg-only      = [[Category:Video game cards with no OCG/TCG counterpart]]
   | duel links  = [[Release::Yu-Gi-Oh! Duel Links]]
+
   | duel links  = [[Concept:Duel Links cards]]
 
   | non-official = <q>[[Concept:Anime cards]] OR [[Concept:Manga cards]] OR [[Concept:Video game cards]]</q>
 
   | non-official = <q>[[Concept:Anime cards]] OR [[Concept:Manga cards]] OR [[Concept:Video game cards]]</q>
 
   }}
 
   }}
Line 89: Line 89:
 
   }}
 
   }}
 
}}{{ #if: {{ #var: $cq_medium }} | {{ #if: {{ #var: $cq_card_type }} | {{ #switch: {{ #var: $cq_medium }}, {{ #var: $cq_card_type }}
 
}}{{ #if: {{ #var: $cq_medium }} | {{ #if: {{ #var: $cq_card_type }} | {{ #switch: {{ #var: $cq_medium }}, {{ #var: $cq_card_type }}
       | official, monster | official, spell | official, trap | official, non-monster
+
       | official, monster   | official, spell | official, trap | official, non-monster
       | anime, monster   | anime, non-monster
+
      | duel links, monster | duel links, non-monster
       | manga, monster   | manga, non-monster = <!-- already covered by concepts -->
+
      | rush duel, monster  | rush duel, non-monster
       | #default         = [[((Card query)) medium and type value::{{ #var: $cq_medium }}, {{ #var: $cq_card_type }}| ]]
+
       | anime, monster     | anime, non-monster
 +
       | manga, monster     | manga, non-monster = <!-- already covered by concepts -->
 +
       | #default           = [[((Card query)) medium and type value::{{ #var: $cq_medium }}, {{ #var: $cq_card_type }}| ]]
 
     }}
 
     }}
 
   }}
 
   }}
Line 137: Line 139:
 
   }}
 
   }}
 
}}{{ #vardefine: $cq_concept_query | {{ #switch: {{ #var: $cq_medium }}/{{ #var: $cq_card_type }}
 
}}{{ #vardefine: $cq_concept_query | {{ #switch: {{ #var: $cq_medium }}/{{ #var: $cq_card_type }}
   | official/monster     = [[Concept:CG monsters]]
+
   | official/monster       = [[Concept:CG monsters]]
   | official/spell       = [[Concept:CG Spell Cards]]
+
   | official/spell         = [[Concept:CG Spell Cards]]
   | official/trap       = [[Concept:CG Trap Cards]]
+
   | official/trap         = [[Concept:CG Trap Cards]]
   | official/non-monster = [[Concept:CG non-monster cards]]
+
   | official/non-monster   = [[Concept:CG non-monster cards]]
   | anime/monster       = [[Concept:Anime monsters]]
+
   | duel links/monster     = [[Concept:Duel Links monsters]]
   | anime/spell          = [[Concept:Anime Spell Cards]]
+
   | duel links/non-monster = [[Concept:Duel Links non-monsters]]
   | anime/trap          = [[Concept:Anime Trap Cards]]
+
   | rush duel/monster      = [[Concept:Rush Duel monsters]]
   | anime/non-monster   = [[Concept:Anime non-monsters]]
+
   | rush duel/non-monster = [[Concept:Rush Duel non-monsters]]
   | manga/monster       = [[Concept:Manga monsters]]
+
   | anime/monster         = [[Concept:Anime monsters]]
   | manga/spell          = [[Concept:Manga Spell Cards]]
+
   | anime/non-monster     = [[Concept:Anime non-monsters]]
  | manga/trap          = [[Concept:Manga Trap Cards]]
+
   | manga/monster         = [[Concept:Manga monsters]]
  | manga/non-monster   = [[Concept:Manga non-monsters]]
+
   | manga/non-monster     = [[Concept:Manga non-monsters]]
   | vg/monster           = [[Concept:Video game monsters]]
 
   | vg/spell            = [[Concept:Video game Spell Cards]]
 
  | vg/trap              = [[Concept:Video game Trap Cards]]
 
  | vg/non-monster       = [[Concept:Video game non-monsters]]
 
 
   }}
 
   }}
 
}}{{ #vardefine: $cq_full_query | {{ #var: $cq_concept_query | {{ #var: $cq_medium_query }}{{ #var: $cq_card_type_query }} }}{{ #var: $cq_query }}
 
}}{{ #vardefine: $cq_full_query | {{ #var: $cq_concept_query | {{ #var: $cq_medium_query }}{{ #var: $cq_card_type_query }} }}{{ #var: $cq_query }}
Line 220: Line 218:
 
     }}
 
     }}
 
   }}
 
   }}
}}{{ #vardefine: $cq_col_level/rank/link | {{ #if: {{ #var: $cq_col_level/rank/link_label }}
+
}}<!-- I'm sure I'll pay for this eventually
  | ?Stars string = {{ #var: $cq_col_level/rank/link_label }}
+
-->{{ #ifeq: {{{medium}}} | Cross Duel
 +
  | {{ #if: {{ #var: $cq_level_in_results }} | {{ #vardefine: $cq_col_level | ?Level string = [[Level]] }}
 +
    }}{{ #if: {{ #var: $cq_rank_in_results }} | {{ #vardefine: $cq_col_rank | ?Rank string = [[Rank]] }}
 +
    }}
 +
  | {{ #vardefine: $cq_col_level/rank/link | {{ #if: {{ #var: $cq_col_level/rank/link_label }}
 +
      | ?Stars string = {{ #var: $cq_col_level/rank/link_label }}
 +
    }}
 
   }}
 
   }}
 
}}<!--
 
}}<!--
Line 239: Line 243:
 
     }} }}
 
     }} }}
 
   }}{{ #vardefine: $cq_col_link_rating | {{ #ifeq: {{ #ask: {{ #var: $cq_full_query }} [[Link Rating::+]] | format=count }} | 0
 
   }}{{ #vardefine: $cq_col_link_rating | {{ #ifeq: {{ #ask: {{ #var: $cq_full_query }} [[Link Rating::+]] | format=count }} | 0
       || ?Link Rating = [[Link Rating|Link]]
+
       || {{ #if: {{ #pos: {{ #var: $cq_query_lc }} | {{!((}}link rating:: }} | {{ #if: {{ #pos: {{ #var: $cq_query_normalized }} | {{!((}}link rating::^ }} | ?Link Rating = [[Link Rating|Link]] }} | ?Link Rating = [[Link Rating|Link]] }}
 +
    }}
 +
  }}{{ #vardefine: $cq_col_maximum_atk | {{ #ifeq: {{ #var: $cq_medium }} | rush duel | {{ #ifeq: {{ #ask: {{ #var: $cq_full_query }} [[MAXIMUM ATK::+]] | format=count }} | 0
 +
        || {{ #if: {{ #pos: {{ #var: $cq_query_lc }} | {{!((}}maximum atk:: }} | {{ #if: {{ #pos: {{ #var: $cq_query_normalized }} | {{!((}}maximum atk::^ }} | ?MAXIMUM ATK#- = [[MAXIMUM ATK]] }} | ?MAXIMUM ATK#- = [[MAXIMUM ATK]] }}
 +
      }}
 
     }}
 
     }}
  }}{{ #vardefine: $cq_col_maximum_atk | {{ #ifeq: {{ #var: $cq_medium }} | rush duel | {{ #ifeq: {{ #ask: {{ #var: $cq_full_query }} [[MAXIMUM ATK::+]] | format=count }} | 0 || ?MAXIMUM ATK#- = [[MAXIMUM ATK]] }} }}
 
 
   }}
 
   }}
 
| {{ #vardefine: $cq_col_property | {{ #if: {{ #pos: {{ #var: $cq_query_lc }} | {{!((}}property:: }} | {{ #if: {{ #pos: {{ #var: $cq_query_normalized }} | {{!((}}property::^ }} | ?Property = [[Property]] | {{ #ifeq: {{{extra_column}}} | Property | ?Property = [[Property]] }} }} | ?Property = [[Property]] }}
 
| {{ #vardefine: $cq_col_property | {{ #if: {{ #pos: {{ #var: $cq_query_lc }} | {{!((}}property:: }} | {{ #if: {{ #pos: {{ #var: $cq_query_normalized }} | {{!((}}property::^ }} | ?Property = [[Property]] | {{ #ifeq: {{{extra_column}}} | Property | ?Property = [[Property]] }} }} | ?Property = [[Property]] }}
Line 275: Line 282:
 
   |{{ #var: $cq_col_type }}
 
   |{{ #var: $cq_col_type }}
 
   |{{ #var: $cq_col_level/rank/link }}
 
   |{{ #var: $cq_col_level/rank/link }}
 +
  |{{ #var: $cq_col_level }}
 +
  |{{ #var: $cq_col_rank }}
 
   |{{ #var: $cq_col_scale }}
 
   |{{ #var: $cq_col_scale }}
 
   |{{ #var: $cq_col_atk }}
 
   |{{ #var: $cq_col_atk }}
Line 308: Line 317:
 
{{ #var: $cq_col_type }}
 
{{ #var: $cq_col_type }}
 
{{ #var: $cq_col_level/rank/link }}
 
{{ #var: $cq_col_level/rank/link }}
 +
{{ #var: $cq_col_level }}
 +
{{ #var: $cq_col_rank }}
 
{{ #var: $cq_col_scale }}
 
{{ #var: $cq_col_scale }}
 
{{ #var: $cq_col_atk }}
 
{{ #var: $cq_col_atk }}
Line 358: Line 369:
  
 
-->{{ #if: {{{debug<includeonly>|</includeonly>}}} | <nowiki/>
 
-->{{ #if: {{{debug<includeonly>|</includeonly>}}} | <nowiki/>
* <code>#ask</code> query: <code>{{ #tag: nowiki | {{ #var: $cq_full_query }} }}</code>
+
* <code>#ask</code> query ($cq_full_query): <code>{{ #tag: nowiki | {{ #var: $cq_full_query }} }}</code>
 
* <abbr title="query entered">$cq_query</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_query }} }}</code>
 
* <abbr title="query entered">$cq_query</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_query }} }}</code>
 
* <abbr title="lowercased query entered">$cq_query_lc</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_query_lc }} }}</code>
 
* <abbr title="lowercased query entered">$cq_query_lc</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_query_lc }} }}</code>
Line 368: Line 379:
 
* <abbr title="processed $cq_card_type ready to use on the query">$cq_card_type_query</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_card_type_query }} }}</code>
 
* <abbr title="processed $cq_card_type ready to use on the query">$cq_card_type_query</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_card_type_query }} }}</code>
 
* <abbr title="concept used to reduce load for queries asking for common medium+card type combos">$cq_concept_query</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_concept_query }} }}</code>
 
* <abbr title="concept used to reduce load for queries asking for common medium+card type combos">$cq_concept_query</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_concept_query }} }}</code>
 +
* <abbr title="determined number of monster results">$cq_monster_count</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_monster_count }} }}</code>
 +
* <abbr title="determined number of nonmonster results">$cq_nonmonster_count</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_nonmonster_count }} }}</code>
 +
* <abbr title="determined number of Spell Card results">$cq_spell_count</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_spell_count }} }}</code>
 +
* <abbr title="determined number of Trap Card results">$cq_trap_count</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_trap_count }} }}</code>
 
* <abbr title="enable/disable «?Card type» column">$cq_col_card_type</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_card_type }} }}</code>
 
* <abbr title="enable/disable «?Card type» column">$cq_col_card_type</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_card_type }} }}</code>
 +
* <abbr title="enable/disable «?Character» column">$cq_col_character</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_character }} }}</code>
 +
* <abbr title="enable/disable «?Japanese name» column">$cq_col_japanese_name</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_japanese_name }} }}</code>
 
* <abbr title="for monster cards, enable/disable «?Primary type» column">$cq_col_primary_type</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_primary_type }} }}</code>
 
* <abbr title="for monster cards, enable/disable «?Primary type» column">$cq_col_primary_type</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_primary_type }} }}</code>
 
* <abbr title="for monster cards, enable/disable «?Secondary type» column">$cq_col_secondary_type</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_secondary_type }} }}</code>
 
* <abbr title="for monster cards, enable/disable «?Secondary type» column">$cq_col_secondary_type</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_secondary_type }} }}</code>
 
* <abbr title="for monster cards, enable/disable «?Attribute» column">$cq_col_attribute</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_attribute }} }}</code>
 
* <abbr title="for monster cards, enable/disable «?Attribute» column">$cq_col_attribute</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_attribute }} }}</code>
 
* <abbr title="for monster cards, enable/disable «?Type» column">$cq_col_type</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_type }} }}</code>
 
* <abbr title="for monster cards, enable/disable «?Type» column">$cq_col_type</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_type }} }}</code>
 +
* <abbr title="whether any results have a value stored in Property:Level string">$cq_level_in_results</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_level_in_results }} }}</code>
 +
* <abbr title="whether any results have a value stored in Property:Rank string">$cq_rank_in_results</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_rank_in_results }} }}</code>
 +
* <abbr title="whether any results have a value stored in Property:Link Rating">$cq_link_in_results</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_link_in_results }} }}</code>
 +
* <abbr title="determined label for Stars column">$cq_col_level/rank/link_label</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_level/rank/link_label }} }}</code>
 
* <abbr title="for monster cards, enable/disable «?Stars string» column">$cq_col_level/rank/link</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_level/rank/link }} }}</code>
 
* <abbr title="for monster cards, enable/disable «?Stars string» column">$cq_col_level/rank/link</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_level/rank/link }} }}</code>
 +
* <abbr title="for Cross Duel monster cards, enable/disable «?Level string» column">$cq_col_level</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_level }} }}</code>
 +
* <abbr title="for Cross Duel monster cards, enable/disable «?Rank string» column">$cq_col_rank</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_rank}} }}</code>
 
* <abbr title="for monster cards, enable/disable «?Pendulum Scale» column">$cq_col_scale</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_scale }} }}</code>
 
* <abbr title="for monster cards, enable/disable «?Pendulum Scale» column">$cq_col_scale</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_scale }} }}</code>
 
* <abbr title="for monster cards, enable/disable «?Link Rating» column">$cq_col_link_rating</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_link_rating }} }}</code>
 
* <abbr title="for monster cards, enable/disable «?Link Rating» column">$cq_col_link_rating</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_link_rating }} }}</code>
 +
* <abbr title="whether the query only returns results with same ATK/DEF">$cq_equal_atkdef</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_equal_atkdef }} }}</code>
 
* <abbr title="for monster cards, enable/disable «?ATK string» column">$cq_col_atk</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_atk }} }}</code>
 
* <abbr title="for monster cards, enable/disable «?ATK string» column">$cq_col_atk</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_atk }} }}</code>
 
* <abbr title="for monster cards, enable/disable «?DEF string» column">$cq_col_def</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_def }} }}</code>
 
* <abbr title="for monster cards, enable/disable «?DEF string» column">$cq_col_def</abbr>: <code>{{ #tag: nowiki | {{ #var: $cq_col_def }} }}</code>
Line 404: Line 428:
 
}}{{ #vardefine: $cq_col_level_rank_flags
 
}}{{ #vardefine: $cq_col_level_rank_flags
 
}}{{ #vardefine: $cq_col_level/rank/link
 
}}{{ #vardefine: $cq_col_level/rank/link
 +
}}{{ #vardefine: $cq_col_level
 +
}}{{ #vardefine: $cq_col_rank
 
}}{{ #vardefine: $cq_col_scale
 
}}{{ #vardefine: $cq_col_scale
 
}}{{ #vardefine: $cq_col_atk
 
}}{{ #vardefine: $cq_col_atk

Revision as of 16:49, 25 January 2024

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_25const71086Using 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 ($cq_full_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_monster_count: 44947
  • $cq_nonmonster_count: 22379
  • $cq_spell_count: 13091
  • $cq_trap_count: 8875
  • $cq_col_card_type: ?Card type =
  • $cq_col_character:
  • $cq_col_japanese_name: ?Japanese name
  • $cq_col_primary_type: ?Primary type
  • $cq_col_secondary_type: ?Secondary type
  • $cq_col_attribute: ?Attribute = [[Attribute]]
  • $cq_col_type: ?Type = [[Type]]
  • $cq_level_in_results: 1
  • $cq_rank_in_results: 1
  • $cq_link_in_results:
  • $cq_col_level/rank/link_label: [[Level]]/<br />[[Rank]]
  • $cq_col_level/rank/link: ?Stars string = [[Level]]/<br />[[Rank]]
  • $cq_col_level:
  • $cq_col_rank:
  • $cq_col_scale: ?Pendulum Scale = [[Pendulum Scale|Scale]]
  • $cq_col_link_rating: ?Link Rating = [[Link Rating|Link]]
  • $cq_equal_atkdef:
  • $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: 44947