2012-10-24 75 views
0

這裏是我的數據庫表:通過表單提交更新數據庫中的表中的單個值

 
id | account_name | account_number | account_type | address |   email    | ifsc_code | is_default_account | phone_num | User 
-----+--------------+----------------+--------------+---------+------------------------------+-----------+--------------------+-------------+---------- 
201 | helloi32irn | 55265766432454 | Savings  |   | [email protected] | 5545  | f     | 98654567876 | abc 
195 | hello  | 55265766435523 | Savings  |   | [email protected]   | 5545  | t     | 98654567876 | axyz 
203 | what   | 01010101010101 | Current  |   | [email protected]   | 6123  | f     | 09099990 | abc

表單提交的觀點,只張貼一個參數,它在我的情況是name =「激活「,其對應於表格中的」is_default_account「列。 我想將「is_default_account」的值從「t」更改爲「f」。例如,在表中,對於account_name「hello」,它是「t」。並且我想停用它,即使它成爲「f」並激活已通過表格發送的其他任何其他

回答

1

這將更新您的表並使帳戶'默認'(假設is_default_account是BOOLEAN字段) :

UPDATE table 
SET is_default_account = (account_name = 'what') 

您可能希望限制的更新,如果表比你剛上市幾行更多,像這樣:

UPDATE table 
SET is_default_account = (account_name = 'what') 
WHERE is_default_account != (account_name = 'what') 
    AND <limit updates by some other criteria like user name> 
0

我認爲要做到你想做的事,你應該送至少兩個值是什麼從形式。一個用於您要更新的帳戶的ID,另一個用於該操作(在此處激活)。您也可以發送該ID並將其切換。有很多方法可以做到這一點,但我無法弄清楚你正在嘗試做什麼以及你想要SQL還是Playframework代碼。在不限制你的更新(如id)的情況下,你無法精確控制哪些特定的行被更新。請澄清你的問題,並添加一些更多的代碼,如果你想在playframework方面的幫助,我想你會這樣做。

+0

Bladmiral,我需要Playframework代碼,即控制器來完成它。 – Khekhekhe