Biorąc pod uwagę pożądany kod SQL poniżej, gdzie Cond1 i Cond2 muszą zostać spełnione LUB Cond3 musi zostać spełniony w celu wyboru, jaki jest właściwy sposób getQuery()
na osiągnięcie tego?
Pożądany SQL: Warunek 1 i Warunek 2 w nawiasach)
SELECT * FROM #__myTable
WHERE (condition1=true AND condition2=true) OR condition3=true
Z łańcuchem: określenie OR w -> where ()
$query = $db->getQuery(true);
$query->select('* FROM #__myTable')
->where('condition1 = true AND condition2 = true','OR')
->where('condition3 = true');
Wynikowy SQL: (SQL nie zawiera nawiasów)
SELECT * FROM scm_myTable
WHERE condition1 = true AND condition2 = true OR condition3 = true
Z tablicami określającymi OR w -> where ()
$query = $db->getQuery(true);
$conditions12 = array(
'condition1 = true',
'condition2 = true'
);
$conditions3 = array(
'condition3 = true'
);
$query->select('* FROM #__myTable')
->where($conditions12, 'OR')
->where($conditions3);
Wynikowy SQL: (SQL nie zawiera nawiasów)
SELECT * FROM scm_myTable
WHERE condition1 = true OR condition2 = true OR condition3 = true