2012-04-28 6 views
0

私は他の投稿を読んでいますが、これはとても簡単なステートメントなので、私がここで間違っていることを本当に理解できません。MySQLアップデート、どこで動作しないのですか?

で何か '(')

クエリコメントです:

[UPDATE users, sites 
SET users.idSiteRegUsers='1' 
WHERE sites.SiteActivateSites='DEL' ] 

(TBLの全体のクエリ内で更新するように選択する) (ユーザー設定1にidSiteRegUsersをTBL) (のみ

私もhttp://bugs.mysql.com/bug.php?id=52651と読んでいますが、INTをVARCHARに、そしてUPDATINGを0に変更しようとしましたが、バグはありましたが、結果は同じです。

問題:

私が見つけたような結果の数を理解するために単純なSELECTステートメントを使用して更新する必要がある2129本の記録を持っています。

しかし、UPDATEクエリは、DEL =のレコードだけでなく、別の値を参照しているレコードもすべて更新します。 = 1

私は何かを忘れましたか?

乾杯、 ジョー

答えて

1

ちょうどあなたのSELECTコマンドと同様に、あなたがテーブルの結合方法のMySQLに指示する必要があります:あなたのUPDATEは現在と結合usersにすべての行で(両方のテーブルの完全なデカルト積を行っていますsitesのすべての行 - したがって、sitesWHERE条件フィルタリングでは、すべてのレコードがusersから一致します。

ではなく、試してみてください。

UPDATE users JOIN sites ON users.idSiteRegUsers = sites.id_Sites 
SET users.idSiteRegUsers='1' 
WHERE sites.SiteActivateSites='DEL' 
+0

ハハ愚かな私!それを指摘してくれてありがとう。あなたはスーパースターエジガルです! – JosephGourvenec

関連する問題