PostgreSQLで複数のデータを一括修正


そんなに数は多くないのですが、

UPDATE shop SET pay = true WHERE id = 2289 AND id = 2291 AND id = 2292 AND id = 2348 AND id = 2604

こんなカンジで特定のIDのデータを一括修正したいのですが、エラーは返ってこないものの、なぜかFALSE(0)と値が入ってしまいます。この書き方の何がいけないのでしょうか

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2010/10/04 15:13:42
  • 終了:2010/10/05 09:29:29

ベストアンサー

id:windofjuly No.1

うぃんど回答回数2625ベストアンサー獲得回数11492010/10/04 15:39:18

ポイント30pt

id が 2289 であり2291でもあり2291でもあり2348でもあり2604でもある場合のみ、そのレコードのpayをtrueに変更するという命令になっていますので、そんなレコードはないという返事になっています

 

この場合はORを使います

UPDATE shop SET pay = true WHERE id = 2289 OR id = 2291 OR id = 2292 OR id = 2348 OR id = 2604

INを使うとスッキリします

UPDATE shop SET pay = true WHERE id IN (2289, 2291, 2292, 2348, 2604)
id:goodbabies

windofjulyさん!いつもありがとうございます!ばっちりでした!

2010/10/05 09:28:48

その他の回答(3件)

id:windofjuly No.1

うぃんど回答回数2625ベストアンサー獲得回数11492010/10/04 15:39:18ここでベストアンサー

ポイント30pt

id が 2289 であり2291でもあり2291でもあり2348でもあり2604でもある場合のみ、そのレコードのpayをtrueに変更するという命令になっていますので、そんなレコードはないという返事になっています

 

この場合はORを使います

UPDATE shop SET pay = true WHERE id = 2289 OR id = 2291 OR id = 2292 OR id = 2348 OR id = 2604

INを使うとスッキリします

UPDATE shop SET pay = true WHERE id IN (2289, 2291, 2292, 2348, 2604)
id:goodbabies

windofjulyさん!いつもありがとうございます!ばっちりでした!

2010/10/05 09:28:48
id:fenstrial No.2

fenstrial回答回数57ベストアンサー獲得回数142010/10/04 15:59:32

ポイント23pt

where句の中はandは誤りでorが正しいです。

id:goodbabies

orですね、了解しました

2010/10/05 09:29:04
id:taknt No.3

きゃづみぃ回答回数13539ベストアンサー獲得回数11982010/10/04 16:04:07

ポイント22pt

UPDATE する対象が抽出されませんからねぇ。

UPDATEの代わりにSELECT とすれば UPDATEされるレコードが わかります。

つまり

UPDATE shop SET pay = true WHERE id = 2289 AND id = 2291 AND id = 2292 AND id = 2348 AND id = 2604

SELECT pay FROM shop WHERE id = 2289 AND id = 2291 AND id = 2292 AND id = 2348 AND id = 2604

で 上記の場合、通常は inとか使います。

なので

UPDATE shop SET pay = true WHERE id in (2289,2291,2292,2348,2604)

とすればいいでしょう。

id:niwa-mikiho No.4

niwa-mikiho回答回数508ベストアンサー獲得回数382010/10/05 01:44:04

ポイント22pt

AND じゃなくて OR でないですか?

AND では

id が 2289 で、且つ id が 2291 で、且つ id が 2292 で、且つ id が 2348 で、且つ id が 2604

という意味に・・・

id:goodbabies

その通りでした!

2010/10/05 09:29:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません