2011-09-21 89 views
1

我有在排我的MySQL數據庫表中重複
所以我得到這個寫在Zend框架下刪除查詢

DELETE from table1 
USING table1, table1 as vtable 
WHERE (NOT table1.ID=vtable.ID) 
AND (table1.field_name=vtable.field_name) 

哪裏table1是表和vtable的情況是一個虛擬表

我應該怎麼寫,在Zend框架

回答

2

Zend_Db_Select支持USING子句,但我認爲它不支持Zend_Db_Adapterdelete()方法。

另一種可能會通過SQL表達式直接連接(如果你使用的是pdo_mysql適配器,這將是一個PDO object):

$ DB->的getConnection() - > EXEC( $ sqlExpression);

重要:請確保您引用正確所有的標識符和值在SQL語句,Zend_Db_Adapter有一些extensive documentation這個)。

+0

感謝您的評論@Pang!我剛剛取代了死鏈接。顯然,自5年前我寫這個答案以來,文檔URL已被移動。 – dinopmi

1

我不知道你正在嘗試做的,但是這是怎麼用在Zend的基本刪除:

$db->delete('table1', array('ID != ?' => $otherID, 'field_name = ?' => $otherFieldName)); 

這是你在找什麼?