0

localhost で、すべての電子メールをユーザー名に置き換えたいと考えています。これは機能しません:

UPDATE `users` SET 'email'='username'

作業コードは何ですか?

4

2 に答える 2

1

usernameデータで呼び出されるフィールドがあると仮定します。

update users set email = username;

あなたのコードは、逆引用符と通常の引用符 (文字列を区切るためにのみ使用されます) を混同しています。次のように書くこともできます。

update `users` set `email` = `username`;

バック クォーテーションは、列名とテーブル名を囲むために使用されます。特に、通常とは異なる文字 (スペースなど) が含まれている場合や、予約名と競合する場合に使用されます。

于 2013-04-08T07:23:43.067 に答える
0

列名を一重引用符で囲んでいるためです。それを削除すると、機能します。

UPDATE users SET email = 'username'

バッククォートは、予約済みのキーワード、または特殊文字を含む列名とテーブル名をエスケープするためにのみ使用されます。下のリンクに詳しい説明があります。

usernameただし、列の値をにコピーする場合はemail、両方の列の引用符を削除する必要があります。

UPDATE users SET email = username
于 2013-04-08T07:20:47.430 に答える