Opačné výbery v Mergade#

Ako na opačné výbery#

Tento článok vysvetľuje, čo sú opačné výbery a ako s nimi v Mergade efektívne pracovať. Ukážeme si rozdiel medzi jednoduchým opačným výberom (kde stačí zmeniť operátor, napr. z „=“ na „!=“) a zložitejším výberom s využitím MQL a operátora NOT. Na konci článku budete vedieť:

  • rozpoznať situáciu, kedy je vhodné použiť opačný výber,
  • vytvoriť jednoduchý opačný výber bez znalosti MQL,
  • prepísať zložitý výber do MQL a použiť negáciu NOT(...) na dosiahnutie opačného výsledku.

Kontext#

Bežne pri práci s výbermi určujete produkty, ktoré chcete zasiahnuť—napr. zvýšiť cenu, upraviť názov alebo ich skryť. Niekedy je ale jednoduchšie vytvoriť výber opačný—teda taký, ktorý vyberie všetko ostatné mimo určitú skupinu. Inými slovami: namiesto „čo chcem upraviť“ definujete „čo nechcem upraviť“. Tento prístup šetrí čas hlavne v situáciách, keď:

  • presne viete, ktoré produkty majú zostať bez zmeny, alebo
  • máte malú skupinu produktov, ktorá má byť na výstupe zachovaná, a všetky ostatné majú byť skryté.

Príklady z praxe#

Typický príklad Spravujete feed s 65 000 produktmi. Chcete vo výstupe ponechať len 5 000 konkrétnych produktov a všetky ostatné skryť. Môžete na to ísť dvoma spôsobmi:

  • vytvoriť výber na všetkých 60 000 produktov, ktoré nechcete (veľmi nepraktické), alebo
  • vytvoriť opačný výber: „Čokoľvek okrem týchto produktov.“ Práve na to slúžia opačné výbery.

Kedy sa opačný výber hodí

  • nechcete zasiahnuť určitú skupinu produktov pravidlom (napr. nechcete im meniť názov alebo cenu),
  • chcete skryť všetko okrem určitej skupiny produktov,
  • chcete prehľadne spravovať výnimky namiesto dlhých zoznamov podmienok.

Jednoduché opačné výbery (bez MQL)#

Ak potrebujete vytvoriť jednoduchý opačný výber, nemusíte hneď používať MQL. Stačí pracovať s opačnými operátormi priamo v základnom rozhraní výberov. Princíp je jednoduchý: namiesto podmienky typu „obsahuje / je ve výčtu / =“ použijete jej negáciu.

Bežný operátor Opačný operátor Čo robí
= (rovná sa) != (nerovná sa) Vyberie produkty s inou hodnotou
obsahuje neobsahuje Vyberie produkty, ktoré text neobsahujú
je ve výčtu není ve výčtu Vyberie produkty, ktoré nie sú v uvedenom zozname

Príklad 1 – obrátenie „obsahuje“ Pôvodný výber:

CATEGORY ~OBSAHUJE "Zahrada"

Nájde všetky produkty, ktoré majú v elemente <CATEGORY> hodnotu „Zahrada“. Opačný výber (ponechá len produkty, ktoré túto hodnotu neobsahujú):

CATEGORY !~ NEOBSAHUJE "Zahrada"

Príklad 2 – „je ve výčtu“ vs. „není ve výčtu“ Pôvodný výber (produkty, ktoré chcete ponechať na výstupe):

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

Opačný výber (produkty, ktoré chcete skryť – teda všetko okrem uvedených):

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

Tento výber vyberie všetky produkty okrem týchto troch.

Pokročilé opačné výbery pomocou MQL (NOT)#

Ak je výber zložitejší (viac podmienok, logika AND/OR), odporúčame použiť MQL a operátor NOT. Tento prístup dáva plnú kontrolu nad tým, ako sa výber otočí.

Ako funguje operátor NOT#

V MQL môžete NOT použiť na „znegovanie“ podmienky alebo celého dotazu.

Príklady ekvivalencie:

ITEM_ID != 43

je to isté ako

NOT(ITEM_ID = 43)
  • ITEM_ID = 43 → vyberie produkt s ID 43
  • NOT(ITEM_ID = 43) → vyberie všetky okrem produktu s ID 43

Grafické znázornenie negácie (slovne): NOT obracia množinu – vyberie všetko, čo nezodpovedá pôvodnému výberu.

Kroky k riešeniu#

1) Prihlásenie do Mergada a prechod na správu výberov#

  • Prihláste sa do svojho Mergado účtu.
  • Prejdite na sekciu Produkty v hlavnom menu.

2) Vytvorenie dotazu#

  • Operátor NOT sa vždy pridáva v sekcii Vlastní MQL dotaz.
  • Môžete si najprv výber zostaviť v jednoduchom rozhraní a potom sa prepnúť do MQL sekcie, alebo hneď napísať dotaz v MQL.
  • Vytvorte výber produktov, ktoré chcete ponechať.
  • Celý vytvorený dotaz uzavrite do okrúhlych zátvoriek () a pred neho pridajte negáciu NOT.

3) Pomenovanie a uloženie#

  • Výber si vhodne pomenujte a uložte.
  • Následne s ním môžete pracovať v rámci pravidiel (napr. použiť v skrývacom pravidle).

Praktický príklad#

Chcete ponechať na výstupe iba produkty, ktoré:

  • majú v názve „kalhoty“,
  • majú parameter barva = fialová,
  • a stoja viac ako 1100 Kč s DPH.

Všetko ostatné chcete skryť. Celkový počet produktov je cca 65 000, tento výber nájde iba 2.

Postup:

  • V rozhraní výberu prepnite do Vlastní MQL dotaz.
  • Pôvodný výber (ten, ktorý definuje čo ponechať) zabaľte do () a predraďte NOT. Tým vytvoríte opačný výber: vyberie všetky produkty okrem tých, ktoré spĺňajú pôvodné podmienky. Môžete ho použiť v skrývacom pravidle — vo výstupnom feede tak zostanú len produkty, ktoré zodpovedajú pôvodnému výberu.

Tipy a časté chyby#

  • Nezapomínajte na zátvorky. Ak kombinujete viac podmienok, vždy celý pôvodný výber uzavrite do zátvoriek:

    NOT(PRODUCTNAME CONTAINS "boty" OR CATEGORY = "Doplňky")
  • Pamätajte, že NOT obracia celú logiku, nie len jednotlivé časti. Ak kombinujete viac výrazov s AND a OR, môže byť výsledok iný, než čakáte. Výber preto otestujte.

Rýchla rekapitulácia (prehľad)#

Typ výberu Ako vytvoriť Príklad
Jednoduchý opačný výber Použiť opačný operátor CATEGORY != "Zahrada"
Opačný výber so zoznamom hodnôt Použiť „není ve výčtu“ ITEM_ID NOT IN (101,102,103)
Zložitý opačný výber Použiť MQL a NOT(...) NOT(PRODUCTNAME CONTAINS "kalhoty" AND PRICE_VAT > 1100)

FAQ#

Kedy má zmysel použiť opačný výber?#

Keď nechcete zasiahnuť určitú skupinu produktov pravidlom, chcete skryť všetko okrem určitej skupiny, alebo potrebujete prehľadne spravovať výnimky bez dlhých zoznamov podmienok.

Ako vytvorím jednoduchý opačný výber bez MQL?#

V základnom rozhraní výberov použijete opačný operátor (napr. != namiesto =; „neobsahuje“ namiesto „obsahuje“; „není ve výčtu“ namiesto „je ve výčtu“).

Ako vypadá príklad pre „obsahuje“ vs. „neobsahuje“? #

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

Ako vytvorím opačný výber k zoznamu ID?#

Pôvodný: ITEM_ID Je ve výčtu (101, 102, 103) Opačný: ITEM_ID Není ve výčtu (101, 102, 103) – vyberie všetko okrem týchto troch.

Kedy siahnuť po MQL a NOT?#

Keď je výber zložitejší (viac podmienok, kombinácia AND/OR) a potrebujete presne riadiť negáciu celého dotazu.

Ako funguje NOT v MQL na jednoduchom príklade?#

ITEM_ID != 43 je to isté ako NOT(ITEM_ID = 43). NOT vyberie všetky položky, ktoré nespĺňajú podmienku.

Kam NOT zapisovať?#

Do sekcie Vlastní MQL dotaz. Pôvodný výber dajte do zátvoriek () a pred neho napíšte NOT.

Prečo sú zátvorky dôležité?#

Zaistia, že NOT neguje presne tú časť, ktorú chcete. U kombinácií AND/OR bez zátvoriek hrozí iný výsledok, než očakávate.

Môžem opačný výber použiť na skrytie všetkého mimo výnimky?#

Áno. Opačný výber môžete použiť v skrývacom pravidle, takže vo výstupnom feede zostanú len položky spĺňajúce pôvodný (ne-negovaný) výber.

Zvládnem to bez znalosti MQL?#

Áno. U jednoduchých prípadov stačí v rozhraní výberov použiť opačné operátory. MQL s NOT využijete, keď potrebujete negovať zložitejšie kombinácie podmienok.

Bol tento článok užitočný?