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 != 43je to isté ako
NOT(ITEM_ID = 43)ITEM_ID = 43→ vyberie produkt s ID 43NOT(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
NOTsa 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áciuNOT.
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ďteNOT. 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
NOTobracia celú logiku, nie len jednotlivé časti. Ak kombinujete viac výrazov sANDaOR, 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.