Делать строку базы данных DeleteAll, где 1 поле равно чему-то, а другое поле НЕ равно чему-либо - PullRequest
0 голосов
/ 08 августа 2010

Я борюсь с этим, я в основном хочу сделать deleteAll базы данных, где одно поле равно чему-то, а другое поле НЕ должно быть чем-то ... его для удаления дублирующихся строк, поэтому я хочу удалить все, кроме одного ряд .. способ, которым я попробовал ниже, не работает, я был бы признателен за любой совет:

 $conditions = array (
  "Prox.proxy" => $currentproxytocheck,
  "AND" => array (
   "NOT" => array (
    "Prox.proxyid" => $currentproxyid
   )
  )
 );

$this->Prox->deleteAll(array( 'conditions' => $conditions)); 

EDIT:

Распечатка моего массива $ condition:

Array
(
    [Prox.proxy] => 62.58.179.2:80
    [AND] => Array
        (
            [NOT] => Array
                (
                    [Prox.proxyid] => 36829
                )

        )

)

Ошибка от CAkephp:

Notice (8): Array to string conversion [CORE/cake/libs/model/datasources/dbo_source.php, line 2193]
Warning (512): SQL Error: 1054: Unknown column 'conditions' in 'where clause' [CORE/cake/libs/model/datasources/dbo_source.php, line 673]   

1 Ответ

6 голосов
/ 08 августа 2010

Синтаксис для deleteAll отличается от find

deleteAll(mixed $conditions, $cascade = true, $callbacks = false)

Используйте

$this->Prox->deleteAll($conditions); 

И ваш массив может быть построен так:

$conditions = array (
    "Prox.proxy" => $currentproxytocheck,
    "Prox.proxyid <>" => $currentproxyid
);

Это то же самое, но более читабельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...