2013-10-15 52 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

相关问题