====== Test podmínek AND a OR ====== Data jsou umístěna zde https://www.pirati.cz/playground/andortest/data1?do=index Cílem je vytvořit pomocí syntaxe pluginu stejnou podmínku, která by se v syntaxi MySQL zapsala jako **SELECT ... FROM `andortest` WHERE (a=1 AND b>3) OR (a=2 AND b<=2);** Nejprve zobrazení všech existujících dat. Zdrojový kód (podmínka where je tam použita, aby se zbytečně nezobrazovala případná zcela nesouvisející data) ---- datatable ---- cols : %pageid%, a, b headers : Data, Pole A, Pole B where : %class%=andortest sort : %pageid% ---- a výsledek. ---- datatable ---- cols : %pageid%, a, b headers : Data, Pole A, Pole B where : %class%=andortest sort : %pageid% ---- To se tedy povedlo. Teď zkusíme podmínku podle zadání Zdrojový kód ---- datatable ---- cols : %pageid%, a, b headers : Data, Pole A, Pole B where : a=1 and : b>3 or : a=2 and : b<=2 sort : %pageid% ---- a výsledek. ---- datatable ---- cols : %pageid%, a, b headers : Data, Pole A, Pole B where : a=1 and : b>3 or : a=2 and : b<=2 sort : %pageid% ---- To se také povedlo. Jenže plugin má společnou databázi pro veškerá data a pokud chci použít něco jako jednotlivou tabulku, mohu použít pouze filtrování podle %class%. Podmínka v MySQL by tedy vypadala takto: **SELECT ... WHERE class=`andortest` AND (////(a=1 AND b>3) OR (a=2 AND b<=2));** Zkusíme tedy podmínku podle tohoto zadání Zdrojový kód ---- datatable ---- cols : %pageid%, a, b headers : Data, Pole A, Pole B where : %class%=andortest and : a=1 and : b>3 or : a=2 and : b<=2 sort : %pageid% ---- a výsledek. ---- datatable ---- cols : %pageid%, a, b headers : Data, Pole A, Pole B where : %class%=andortest and : a=1 and : b>3 or : a=2 and : b<=2 sort : %pageid% ---- To se také povedlo. A teď zkusíme složitější podmínku. V MySQL by to vypadalo takto **SELECT ... WHERE class=`andortest` AND (////(a=1 AND (b=1 OR b=3)) OR (a=2 AND (b=2 OR b=4)));** Zdrojový kód ---- datatable ---- cols : %pageid%, a, b headers : Data, Pole A, Pole B where : %class%=andortest and : a=1 and : b=1 or : b=3 or : a=2 and : b=2 or : b=4 sort : %pageid% ---- a výsledek. ---- datatable ---- cols : %pageid%, a, b headers : Data, Pole A, Pole B where : %class%=andortest and : a=1 and : b=1 or : b=3 or : a=2 and : b=2 or : b=4 sort : %pageid% ---- To se tedy nepovedlo a hlava mi to nebere.:-(