if($filter_ps != -1) { $where[] = '(' . 'LOWER(scu.params) REGEXP '.$this->_db->Quote('ot_sep=1') . ' AND NOT '.$this->_db->Quote('[^_]sep=1') . ')'; } сделал через AND NOT, может неправильно что сделал, ошибку не выдает строчку . 'LOWER(scu.params) REGEXP '.$this->_db->Quote('ot_sep=1') цепляет а на строчку . ' AND NOT '.$this->_db->Quote('[^_]sep=1') ноль внимания и на переменную в ней '[^_]sep=1' посмотрите, может неправильно что сделал
пытался в одну строчку запихнуть, но выдает ошибку((( if($filter_ps != -1) { $where[] = '(' . 'LOWER(scu.params) REGEXP '.$this->_db->Quote('ot_sep=1')' AND NOT REGEXP '.$this->_db->Quote('[^_]sep=1') . ')'; } целый день на работе мозг выношу этой функцией(( ктонибуть подсабите)))
что-то не похоже. тупо сидеть и ждать можно годами. а тут пара минут гугления, например так http://www.google.ru/#sclient=psy&hl=ru ... 07&bih=924 приводят нас к [sql]'LOWER(scu.params) REGEXP '.$this->_db->Quote('ot_sep=1')' AND LOWER(scu.params) NOT REGEXP '.$this->_db->Quote('[^_]sep=1')[/sql] так должно сработать
я так пробывал уже, ошибку выдает Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING тут толи точки нехватает, толи скобки: if($filter_ps != -1) { $where[] = '(' . 'LOWER(scu.params) REGEXP '.$this->_db->Quote('ot_sep=1')' AND LOWER(scu.params) NOT REGEXP '.$this->_db->Quote('[^_]sep=1') . ')'; }
Все получилось! Спасибо! я пробывал такие варианты но блин я забыл про то что во втором выражении надо было тоже ячейку базы указать))) AND LOWER(scu.params) NOT REGEXP)) я неправильно писал так AND NOT REGEXP. А ошибку T_CONSTANT_ENCAPSED_STRING которая возникла я устранил следующем образом: if($filter_ps != -1) { $where[] = '(' . 'LOWER(scu.params) REGEXP '.$this->_db->Quote('ot_sep=1') . ' AND LOWER(scu.params) NOT REGEXP '.$this->_db->Quote('[^_]sep=1') . ')'; } перенес AND на вторую строку)) Gromo спасибо буду мучиться дальше))