3

userid が users テーブルのテーブルに存在する場合、テーブル people の値 (レベル) を更新しようとしています

  IF EXISTS (SELECT userid FROM users)
  UPDATE people SET level='1'

私が欠けているもの!エラーを取得するには?

4

3 に答える 3

7

「値1の両方のテーブルにユーザーIDが存在する場合、レベル列を更新する必要があります」というコメントから、これが必要なようです:

UPDATE
    `people`
SET
    `level` = 1
WHERE
    EXISTS (
        SELECT
            *
        FROM
            `users`
        WHERE
            users.userid = people.userid
    );
于 2012-09-15T09:23:48.207 に答える
3

選択する必要はありません。あなたに必要なのは:

UPDATE people SET level='1' WHERE userid IS NOT NULL

ところで、どのデータベースを実行していますか?

アップデート。申し訳ありませんが、テーブルが 2 つあるという事実を見逃していました。次のようなことをお勧めします。

UPDATE people SET level='1' WHERE EXISTS (SELECT * FROM users WHERE 
users.userid = people.userid)

また、 でUPDATE行うこともできますがJOIN、それは使用しているデータベースによって異なります。

于 2012-09-15T09:26:23.740 に答える