2013-10-15 51 views
0

我在查找列更新列表中另一列的值之前是否包含某個值的簡單方法遇到了一些麻煩。舉例來說,如果我有表StudentsParticipationInClass像下面更新另一列時檢查某列是否包含某個值

 
    | ID | Grade | State | 
    | 1 | 'U' |'OnGoing'| 
    | 2 | '3' | 'Done' | 

我希望有一個約束告訴才能夠將狀態更新爲完成年級必須的東西比「U」或NULL其他用戶。

+0

我建議你添加一些邏輯到你的應用程序代碼,以便允許被更新只記錄顯示爲這樣。 –

+0

我希望它在數據庫級別,以便如果將來開發另一個程序,它也不必將該邏輯添加到其中。 – ccb3

回答

0

這種查詢可以幫助您:

UPDATE StudentsParticipationInClass
SET State = 'Done'
WHERE Grade <> 'U'
AND WHERE Grade IS NOT NULL
AND WHERE ID = 1

+0

這是SQL - >'Grade!='U'' –

+0

我不希望它在更新查詢中,我希望它作爲檢查約束,因此您不必在後面創建的每個更新語句中擔心它在 – ccb3

+1

@Nadeem_MK,在一些版本的SQL'!='[它工程](http://www.w3schools.com/sql/sql_where.asp),但是,'<>'似乎更好。編輯我的答案。 – Azamat

相關問題