0

ここでは、表にいくつかの学生情報があります。承認された値はデフォルトで0です。いくつかの条件を確認した後、何人かの学生をグループ化し、その値を1に更新します。

条件を満たした生徒のみ

select * from studentA 
where schName ='IES DADAR' and lang = 'E' 

[1]: http://rk.somee.com/untitled.jpg

次のコードを試していますが、指定された条件に従ってフィルタリングしていません。代わりに、すべての学生の認証値を 1 に変更します。

update studentA
set Authorized = '1'
where Authorized IN 
( select Authorized from studentA 
where schName ='IES DADAR' and lang = 'E')

別の方法も提案できます。

4

2 に答える 2

3

試す

update studentA 
set Authorized = '1' 
where schName ='IES DADAR' 
and lang = 'E'
于 2012-08-12T19:39:32.120 に答える
2

サブクエリ

 select Authorized from studentA 
 where schName ='IES DADAR' and lang = 'E'

0 を返すので、実際のクエリは次のようになります

update studentA
set Authorized = '1'
where Authorized IN ('0')

これにより、テーブル内のすべての行が更新されます。

だから、そうあるべきです

update studentA
set Authorized = '1'
where schName ='IES DADAR' and lang = 'E'
于 2012-08-12T19:45:07.873 に答える