更新mysql表以交换整行

时间:2015-09-08 05:38:59

标签: mysql

我必须在行中交换整个表的数据。我已经搜索了解决方案,但它只有两行。这不是我正在寻找的东西。我要交换整个表格的行。该行只包含两种类型的数据。像0或1。

我的mysql表看起来像这样。

*CustomerId             Band         Gender*
Kurt Cobain            Nirvana      Male
John Mayer             JohnMayer    Male
Katy Perry             Katy Perry   Female
Lana Del Rey           Lana Del     Female
Axl Rose               GNR          Male

交换后,我希望我的桌子看起来像这样。

*CustomerId            Band         Gender*
Kurt Cobain            Nirvana      Female
John Mayer             JohnMayer    Female
Katy Perry             Katy Perry   Male
Lana Del Rey           Lana Del     Male
Axl Rose               GNR          Female

我希望我的ID与原样相同。 谢谢!!!!!

2 个答案:

答案 0 :(得分:0)

如果要交换的值为0和1,则可以执行以下操作:

UPDATE table_name SET Gender = 1 - Gender;  

如果您的当前值为1,则执行此操作(1-1 = 0),否则如果您的值为0,则执行此操作(1-0 = 1)

如果您正在处理字符串,您可以执行以下操作:

UPDATE table_name SET Gender = IF(Gender="Male", "Female", "Male");  

此查询执行基本的if语句,如果性别字段为Male,则会将其设置为Female,否则会将其设置为Male

这是一个有效的DEMO

答案 1 :(得分:0)

UPDATE table SET gender=CASE WHEN gender='female' THEN 'male' WHEN gender='male' THEN 'female' ELSE NULL END