我有一個SQL表(MYSQL 4.0要準確)以下組成:SQL交換字段值
int no (primary)
int field1
int field2
我想與FIELD2的值,反之亦然交換FIELD1的值。
Ex.: 1;2.5;3.76 becomes 1;3.76;2.5
我需要某種交換臨時變量。但我不認爲我可以在我的更新聲明中使用類似
Set @var1 = field1
。而且我不認爲改變表格添加臨時列也是我最好的選擇。
我有一個SQL表(MYSQL 4.0要準確)以下組成:SQL交換字段值
int no (primary)
int field1
int field2
我想與FIELD2的值,反之亦然交換FIELD1的值。
Ex.: 1;2.5;3.76 becomes 1;3.76;2.5
我需要某種交換臨時變量。但我不認爲我可以在我的更新聲明中使用類似
Set @var1 = field1
。而且我不認爲改變表格添加臨時列也是我最好的選擇。
我最初的想法是要試試這個:
UPDATE YourTable
SET field1=field2
,field2=field1
WHERE ...
的SQL Server這裏語法(但在我用過的,我沒有用mysql的每個數據庫的工作這種方式):
declare @x table (field1 int, field2 int)
insert @x values (1,2)
update @x set field1=field2, field2=field1
select * from @x
輸出
field1 field2
----------- -----------
2 1
(1 row(s) affected)
然而一個小小的研究後,我遇到了這個:Swapping column values in MySQL
如何創建工作表,將數據推送到那裏以及與當前表的連接?
+1是一個好主意。 – 2010-05-21 15:19:29
你需要做其他任何事情比UPDATE YourTable SET field1 = field2,field2 = field1 – mdma 2010-05-21 14:43:37
我假設你這樣做只有一個列的子集? (否則,您可以重命名列!) 臨時列似乎是最簡單,最直接的解決方案。 – wlangstroth 2010-05-21 14:52:30
@mdma:是的,我需要做別的事情:它不起作用。順便說一句,你的評論應該是一個答案,而不是評論。 – 2010-05-21 15:11:16