56

テーブル内のすべてのレコードの 1 つの列をクリアしようとしています。たとえば、テーブルidに 、comment、およびlikes- の 3 つの列がある場合、列をクリアできるようにしたいと考えていlikesます。

+---+-------+-----+
|id |comment|likes|
+-----------------+
|1  |hi     |3    |
|2  |hello  |12   |
|3  |hey    |1    |
+---+-------+-----+

その後、次のようになります。

+---+-------+-----+
|id |comment|likes|
+-----------------+
|1  |hi     |     |
|2  |hello  |     |
|3  |hey    |     |
+---+-------+-----+

UPDATE値をクリアするには MySQL を使用する必要がlikesあると思いますが、すべてのレコードを反復処理してフィールドidcommentフィールドを同じに保つにはどうすればよいでしょうか?

各レコードを手動で変更したくありません。

4

1 に答える 1

100
UPDATE your_table SET likes = NULL

または、likes列が許可されていない場合NULL:

UPDATE your_table SET likes = ''

whereDB クエリの実行に使用される一部の SQL ツールは、デフォルトですべてのレコード (句のないクエリ) の更新を防ぎます。それを構成してその保存設定を削除するか、すべてのレコード用のwhere句を追加して、次のtrueようにすべてを更新することができます。

UPDATE your_table 
SET likes = NULL
WHERE 1 = 1

比較すると、演算子NULLも必要です。IS例:

UPDATE your_table 
SET likes = NULL
WHERE likes IS NOT NULL

equal operator ( ) と比較すると UNKNOWNが返されるためです。しかし、オペレーターは処理できます。NULL=ISNULL

于 2012-04-28T14:03:05.637 に答える