WHERE
!(
((col0 = 'AA') AND (col1 = 'AA'))
OR
((col0 = 'BB') AND (col1 = 'BB'))
)
эквивалентно
WHERE
!((col0 = 'AA') AND (col1 = 'AA'))
AND
!((col0 = 'BB') AND (col1 = 'BB'))
, поскольку НЕ (A ИЛИ B) === НЕ A И НЕ B
упрощение более становится
WHERE
( !(col0 = 'AA') OR !(col1 = 'AA') )
AND
( !(col0 = 'BB') OR !(col1 = 'BB') )
, поскольку НЕ А и В === НЕ А ИЛИ НЕ В
, поэтому запрос может быть построен следующим образом ..
$q->where(function($q) {
$q->where('col0','!=','AA')->orWhere('col1','!=','AA');
})->where(function($q) {
$q->where('col0','!=','BB')->orWhere('col1','!=','BB');
});