Složítě WHERE pomocí Nette\Database
Notice: This thread is very old.
- Oli
- Member | 1215
Pokud jsi se nepřeklepl, tak by to šlo asi takhle:
$this->connection->table('table')->where('x > ?', 1)->where('y < ? OR y > ?', 5, 5); // nebo
$this->connection->table('table')->where('x > ?', 1)->where('y <> ?', 5); //nebo
$this->connection->table('table')->where('x > ? && y <> ?', 1, 5);
- simPod
- Member | 383
Díky. A pokud bych to modifikoval třeba na:
SELECT * FROM `table` WHERE (`x` > 1 AND `y` < 5) OR (`x` > 3 AND `y` > 4)
nedošlo mi, že to ty stejné hodnoty takto ulehčí.
Nebo třeba ještě:
SELECT * FROM `table` WHERE (`x` > 1 AND `y` < 5) OR ((`x` > 3 AND `x` < 8) AND `y` > 4)
Jde mi o to, jak do sebe zanořit více podmínek s AND a OR.
- David Matějka
- Moderator | 6445
jednotlive ->where
se vzdy spojuji pomoci AND, pokud tam
chces pouzit OR, budes to musel vypsat cele
->where('(x > ? AND y < ?) OR ((x > ? AND x < ?) AND y > ?)', 1, 5, 3, 8, 4);