Faça o banco de dados da linha deleeTeall, onde 1 campo é igual a algo e outro campo não é igual a algo
-
26-09-2019 - |
Pergunta
Estou lutando para fazer isso, quero basicamente fazer um banco de dados DeleteAll, onde um campo é igual a algo e outro campo não deve ser igual a algo ... é para excluir linhas duplicadas, então quero excluir tudo, exceto uma linha .. A maneira como tentei abaixo não está funcionando, eu apreciaria nenhum conselho:
$conditions = array (
"Prox.proxy" => $currentproxytocheck,
"AND" => array (
"NOT" => array (
"Prox.proxyid" => $currentproxyid
)
)
);
$this->Prox->deleteAll(array( 'conditions' => $conditions));
EDITAR:
A impressão da minha matriz $ condições é:
Array
(
[Prox.proxy] => 62.58.179.2:80
[AND] => Array
(
[NOT] => Array
(
[Prox.proxyid] => 36829
)
)
)
Erro de 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]
Solução
o Sintaxe para deleteAll
é diferente de find
deleteAll(mixed $conditions, $cascade = true, $callbacks = false)
Usar
$this->Prox->deleteAll($conditions);
E sua matriz pode ser construída assim:
$conditions = array (
"Prox.proxy" => $currentproxytocheck,
"Prox.proxyid <>" => $currentproxyid
);
O que é a mesma coisa, mas mais legível.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow