2009-11-17 88 views

回答

3

你不行。

issue tracker處爲此確切問題創建了一個問題。但是這個功能還沒有實現。

+1

感謝您比我更好地搜索問題跟蹤器。 – chelmertz 2009-11-17 13:02:43

1

你爲什麼要這樣做?如果要更新單條記錄,則應使用記錄的主鍵並使用

UPDATE <table> SET field=<newvalue>, ... WHERE key = <keyvalue>; 

查詢。

+0

1)它是有效的SQL,2)作爲'Zend_Db_Select',它可以包含動態輸入,其中'LIMIT 1'是額外的安全檢查(如果通常的過濾器/驗證失敗或者其他程序員寫得不好) ,3)它應該更快,因爲它應該在更新一行後停止搜索 – chelmertz 2009-11-17 13:11:40

+0

1)。在MySQL中,任何其他的RDBMS都不會接受這種語法,所以你的代碼將不可移植(這可能是Zend Framework中沒有的原因之一)。 2)。那麼爲什麼在實際執行更新/刪除操作之前,您不檢查是否有多個記錄會影響您的業務邏輯? – wimvds 2009-11-17 13:45:08

+0

1)當移植到另一個DBMS時,'update()'上的'LIMIT'將是一個非常小的問題,與所有其他必須平穩運行的問題相比,它是一個非常小的問題。另外,由於它在MySQL中是允許的,所以'update()'不適合它現在的位置(可配置性之外)。感謝提到它只是MySQL,但我不知道。 2)當然有效,但我會採取任何額外的安全措施。 3)取消註釋,但我相信速度可能會對更新大量行的查詢產生重大影響。 – chelmertz 2009-11-17 17:39:18