У меня ситуация в моей таблице базы данных MySQL строки, повторяющейся
Так что я получил это
DELETE from table1 USING table1, table1 as vtable WHERE (NOT table1.ID=vtable.ID) AND (table1.field_name=vtable.field_name)
Где table1
– таблица, а vtable
– виртуальная таблица
Как написать это в Zend Framework
Zend_Db_Select
поддерживает предложение USING
, но я думаю, что это не поддерживается методом Zend_Db_Adapter
delete()
.
Возможной альтернативой может быть передача выражения SQL непосредственно в соединение (если вы используете адаптер pdo_mysql
, это будет объект PDO ):
$ Db-> GetConnection () -> Exec ($ sqlExpression);
( ВАЖНО : убедитесь, что вы правильно указываете все идентификаторы и значения в предложении SQL, Zend_Db_Adapter
имеет обширную документацию об этом).
Я не уверен, что вы пытаетесь сделать, но вот как использовать базовое удаление в Zend:
$db->delete('table1', array('ID != ?' => $otherID, 'field_name = ?' => $otherFieldName));
Это то, что вы ищите?