Opačné výběry v Mergadu#

Jak na opačné výběry#

Tento článek vysvětluje, co jsou opačné výběry a jak s nimi v Mergadu efektivně pracovat. Ukážeme si rozdíl mezi jednoduchým opačným výběrem (kde stačí změnit operátor, např. z „=“ na „!=“) a složitějším výběrem s využitím MQL a operátoru NOT. Na konci článku budete umět:

  • rozpoznat situaci, kdy je vhodné použít opačný výběr,
  • vytvořit jednoduchý opačný výběr bez znalosti MQL,
  • přepsat složitý výběr do MQL a použít negaci NOT(...) pro dosažení opačného výsledku.

Kontext#

Běžně při práci s výběry určujete produkty, které chcete zasáhnout—např. zvýšit cenu, upravit název nebo je skrýt. Někdy je ale jednodušší vytvořit výběr opačný—tedy takový, který vybere vše ostatní mimo určitou skupinu. Jinými slovy: místo „co chci upravit“ definujete „co nechci upravit“. Tento přístup šetří čas hlavně v situacích, kdy:

  • přesně víte, které produkty mají zůstat beze změny, nebo
  • máte malou skupinu produktů, která má být na výstupu zachována, a všechny ostatní mají být skryté.

Příklady z praxe#

Typický příklad Spravujete feed s 65 000 produkty. Chcete ve výstupu ponechat jen 5 000 konkrétních produktů a všechny ostatní skrýt. Můžete na to jít dvěma způsoby:

  • vytvořit výběr na všech 60 000 produktů, které nechcete (velmi nepraktické), nebo
  • vytvořit opačný výběr: „Cokoliv kromě těchto produktů.“ Právě k tomu slouží opačné výběry.

Kdy se opačný výběr hodí

  • nechcete zasáhnout určitou skupinu produktů pravidlem (např. nechcete jim měnit název nebo cenu),
  • chcete skrýt všechno kromě určité skupiny produktů,
  • chcete přehledně spravovat výjimky místo dlouhých seznamů podmínek.

Jednoduché opačné výběry (bez MQL)#

Pokud potřebujete vytvořit jednoduchý opačný výběr, nemusíte hned používat MQL. Stačí pracovat s opačnými operátory přímo v základním rozhraní výběrů. Princip je jednoduchý: místo podmínky typu „obsahuje / je ve výčtu / =“ použijete její negaci.

Běžný operátor Opačný operátor Co dělá
= (rovná se) != (nerovná se) Vybere produkty s jinou hodnotou
obsahuje neobsahuje Vybere produkty, které text neobsahují
je ve výčtu není ve výčtu Vybere produkty, které nejsou v uvedeném seznamu

Příklad 1 – obrácení „obsahuje“ Původní výběr:

CATEGORY ~OBSAHUJE "Zahrada"

Najde všechny produkty, které mají v elementu <CATEGORY> hodnotu „Zahrada“. Opačný výběr (ponechá jen produkty, které tuto hodnotu neobsahují):

CATEGORY !~ NEOBSAHUJE "Zahrada"

Příklad 2 – „je ve výčtu“ vs. „není ve výčtu“ Původní výběr (produkty, které chcete ponechat na výstupu):

ITEM_ID Je ve výčtu (101, 102, 103)

Opačný výběr (produkty, které chcete skrýt – tedy vše kromě uvedených):

ITEM_ID Není ve výčtu (101, 102, 103)

Tento výběr vybere všechny produkty kromě těchto tří.

Pokročilé opačné výběry pomocí MQL (NOT)#

Pokud je výběr složitější (více podmínek, logika AND/OR), doporučujeme použít MQL a operátor NOT. Tento přístup dává plnou kontrolu nad tím, jak se výběr otočí.

Jak funguje operátor NOT#

V MQL můžete NOT použít ke „znegujování“ podmínky nebo celého dotazu.

Příklady ekvivalence:

ITEM_ID != 43

je totéž jako

NOT(ITEM_ID = 43)
  • ITEM_ID = 43 → vybere produkt s ID 43
  • NOT(ITEM_ID = 43) → vybere všechny kromě produktu s ID 43

Grafické znázornění negace (slovně): NOT obrací množinu – vybere vše, co neodpovídá původnímu výběru.

Kroky k řešení#

1) Přihlášení do Mergada a přechod na správu výběrů#

  • Přihlaste se do svého Mergado účtu.
  • Přejděte na sekci Produkty v hlavním menu.

2) Vytvoření dotazu#

  • Operátor NOT se vždy přidává v sekci Vlastní MQL dotaz.
  • Můžete si nejdříve výběr sestavit v jednoduchém rozhraní a poté se přepnout do MQL sekce, nebo rovnou napsat dotaz v MQL.
  • Vytvořte výběr produktů, které chcete ponechat.
  • Celý vytvořený dotaz uzavřete do kulatých závorek () a před něj přidejte negaci NOT.

3) Pojmenování a uložení#

  • Výběr si vhodně pojmenujte a uložte.
  • Následně s ním můžete pracovat v rámci pravidel (např. použít ve skrývacím pravidle).

Praktický příklad#

Chcete ponechat na výstupu pouze produkty, které:

  • mají v názvu „kalhoty“,
  • mají parametr barva = fialová,
  • a stojí více než 1100 Kč s DPH.

Všechno ostatní chcete skrýt. Celkový počet produktů je cca 65 000, tento výběr najde pouze 2.

Postup:

  • V rozhraní výběru přepněte do Vlastní MQL dotaz.
  • Původní výběr (ten, který definuje co ponechat) zabalte do () a předřaďte NOT. Tím vytvoříte opačný výběr: vybere všechny produkty kromě těch, které splňují původní podmínky. Můžete ho použít ve skrývacím pravidle—ve výstupním feedu tak zůstanou jen produkty, které odpovídají původnímu výběru.

Tipy a časté chyby#

  • Nezapomínejte na závorky. Pokud kombinujete více podmínek, vždy celý původní výběr uzavřete do závorek:

    NOT(PRODUCTNAME CONTAINS "boty" OR CATEGORY = "Doplňky")
  • Pamatujte, že NOT obrací celou logiku, ne jen jednotlivé části. Pokud kombinujete více výrazů s AND a OR, může být výsledek jiný, než čekáte. Výběr proto otestujte.

Rychlá rekapitulace (přehled)#

Typ výběru Jak vytvořit Příklad
Jednoduchý opačný výběr Použít opačný operátor CATEGORY != "Zahrada"
Opačný výběr se seznamem hodnot Použít „není ve výčtu“ ITEM_ID NOT IN (101,102,103)
Složitý opačný výběr Použít MQL a NOT(...) NOT(PRODUCTNAME CONTAINS "kalhoty" AND PRICE_VAT > 1100)

FAQ#

Kdy má smysl použít opačný výběr?#

Když nechcete zasáhnout určitou skupinu produktů pravidlem, chcete skrýt všechno kromě určité skupiny, nebo potřebujete přehledně spravovat výjimky bez dlouhých seznamů podmínek.

Jak vytvořím jednoduchý opačný výběr bez MQL?#

V základním rozhraní výběrů použijete opačný operátor (např. != místo =; „neobsahuje“ místo „obsahuje“; „není ve výčtu“ místo „je ve výčtu“).

Jak vypadá příklad pro „obsahuje“ vs. „neobsahuje“?#

Původní: CATEGORY ~OBSAHUJE "Zahrada" Opačný: CATEGORY !~ NEOBSAHUJE "Zahrada"

Jak vytvořím opačný výběr k seznamu ID?#

Původní: ITEM_ID Je ve výčtu (101, 102, 103) Opačný: ITEM_ID Není ve výčtu (101, 102, 103) – vybere vše kromě těchto tří.

Kdy sáhnout po MQL a NOT?#

Když je výběr složitější (více podmínek, kombinace AND/OR) a potřebujete přesně řídit negaci celého dotazu.

Jak funguje NOT v MQL na jednoduchém příkladu?#

ITEM_ID != 43 je totéž co NOT(ITEM_ID = 43). NOT vybere všechny položky, které nesplňují podmínku.

Kam NOT zapisovat?#

Do sekce Vlastní MQL dotaz. Původní výběr dejte do závorek () a před něj napište NOT.

Proč jsou závorky důležité?#

Zajistí, že NOT neguje přesně tu část, kterou chcete. U kombinací AND/OR bez závorek hrozí jiný výsledek, než očekáváte.

Mohu opačný výběr použít ke skrytí všeho mimo výjimky?#

Ano. Opačný výběr můžete použít ve skrývacím pravidle, takže ve výstupním feedu zůstanou jen položky splňující původní (ne-negovaný) výběr.

Zvládnu to bez znalosti MQL?#

Ano—u jednoduchých případů stačí v rozhraní výběrů použít opačné operátory. MQL s NOT využijete, když potřebujete negovat složitější kombinace podmínek.

🇨🇿 🇬🇧 🇩🇪 🇭🇺