テーブル内のすべてのレコードの 1 つの列をクリアしようとしています。たとえば、テーブルに 、 、 - の 3 つの列がある場合、id
そのcomment
列likes
をクリアできるようにしたいと思います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
が、すべてのレコードを反復処理してフィールドid
とcomment
フィールドを同じに保つにはどうすればよいでしょうか?
各レコードを手動で変更したくありません。
ベストアンサー1
UPDATE your_table SET likes = NULL
likes
または、列が許可していない場合NULL
:
UPDATE your_table SET likes = ''
DB クエリの実行に使用される一部の SQL ツールでは、デフォルトですべてのレコード (句のないクエリ) の更新が禁止されています。これを構成してその savety 設定を削除するか、すべてのレコードに適用される句where
を追加して、次のようにすべてを更新することができます。where
true
UPDATE your_table
SET likes = NULL
WHERE 1 = 1
もし、あんたが比較するthenには演算子NULL
も必要ですIS
。例:
UPDATE your_table
SET likes = NULL
WHERE likes IS NOT NULL
なぜなら比較する NULL
等号演算子(=
)は、未知. しかし、IS
オペレータは処理できますNULL
。