2017-03-23 2 views
1

私は 'users'という名前のテーブルを持っています。その中の属性は 'id'、 'name'、 'gender'です。ジェンダー属性内のすべての値MをFで置換し、すべてのFをMで置換するとします。それを行うにはどのようなsqlをmysqlに書くべきですか?あなたはgender列を切り替えるシンプルUPDATE文で使用することができますmysqlの中でいくつかのエントリを並行して置き換えます。

答えて

2

:二度同じ値を入れ替える回避するために、そしてより多くの柔軟性を追加する

UPDATE users 
SET gender = IF(gender='M','F','M'); 
+0

@Hunter McMilenありがとうございました。どのように動作しているか説明してください。私はこのことがどのように起こっているかを知ることができる場所から何らかのリンクまたは参照を投稿する。 –

+0

クエリは 'users'テーブルの各行を調べ、' gender'カラムを調べます。 'gender'カラムが' M'に等しい場合、それは 'F'に設定され、それ以外の場合は' M'に設定されます。 –

+0

私はそれを理解しました。ありがとう:) –

0

を、私は3件の問い合わせにこれを分割すると思います。

UPDATE users SET gender='X' WHERE gender='M'; 
UPDATE users SET gender='M' WHERE gender='F'; 
UPDATE users SET gender='F' WHERE gender='X'; 
+1

各行は1回だけ検査されるので、同じ値を2回切り替えません。 –

+0

もちろん、上記の例に当てはまります。このユーザーの場合は、ソリューションが優れています。 :) –

+0

ありがとう:) ..それはシンプルで効果的な方法です。 –

関連する問題