在mysql中切换列数据?
我想尝试运行一个查询,该查询将更新我的表ptb_消息并切换两列的数据,例如,我的表如下:在mysql中切换列数据?,mysql,Mysql,我想尝试运行一个查询,该查询将更新我的表ptb_消息并切换两列的数据,例如,我的表如下: id | to_user_id | from_user_id | 1 4 5 2 5 6 3 7 9 所以我想尝试做的是将值从\u user\u id切换到\u user\u id,反之亦然 在我意识到一旦我将一个表中的值复制到另一个表中,另一列中的原始数
id | to_user_id | from_user_id |
1 4 5
2 5 6
3 7 9
所以我想尝试做的是将值从\u user\u id切换到\u user\u id,反之亦然
在我意识到一旦我将一个表中的值复制到另一个表中,另一列中的原始数据就会被覆盖之前,我打算使用它
$sql = mysql_query("UPDATE ptb_messages SET ptb_messages.from_user_id=ptb_messages.to_user_id");
我真正需要的是一个交换函数
我真的不知道我该怎么做,但我想象它是这样的:
$sql = mysql_query("UPDATE ptb_messages SET to_user_id=from_user_id, from_user_id=to_user_id");
希望有人能帮我。好吧,mysql有一个叫做
用户变量的概念。您可以利用这一点来存储值,并将其设置在要交换的列上
UPDATE Table1
SET to_user_id = from_user_id,
from_user_id = @r1
WHERE @r1 := to_user_id
请看这里:
把桌子连起来怎么样
UPDATE Table1 a
INNER JOIN Table1 b
ON a.to_user_id = b.to_user_id AND
a.from_user_id = b.from_user_id
SET a.to_user_id = b.from_user_id,
a.from_user_id = b.to_user_id
请看这里:好吧,mysql有一个叫做用户变量的概念。您可以利用这一点来存储值,并将其设置在要交换的列上
UPDATE Table1
SET to_user_id = from_user_id,
from_user_id = @r1
WHERE @r1 := to_user_id
请看这里:
把桌子连起来怎么样
UPDATE Table1 a
INNER JOIN Table1 b
ON a.to_user_id = b.to_user_id AND
a.from_user_id = b.from_user_id
SET a.to_user_id = b.from_user_id,
a.from_user_id = b.to_user_id
请看这里:我将给出一个答案,尽管我认为“瘦管道”的答案更优雅一些
您可以创建一个临时表来存储其中的值
我将给出一个答案,尽管我认为“瘦烟斗”的答案更优雅一点
您可以创建一个临时表来存储其中的值
. 它们不再得到维护。看到了吗?改为了解,并使用or-将帮助您决定使用哪一种。您确定要使用PHP吗?请看这个-->。它们不再得到维护。看到了吗?改为了解,并使用or-将帮助您决定使用哪一种。您确定要使用PHP吗?看看这个-->仍然会给我同样的问题,它正在更新from_user_id并将其复制到to_user_id中,但to_user_id没有被复制到from_user_id中:/如果我没有弄错的话,您绝对不能保证to_user_id在from_user_id之前会被更新。我无法理解。它似乎在小提琴上起作用,对吧?请看我的更新答案。好的,你的更新在我看来很好,+1和干杯。但这仍然给了我同样的问题,它正在更新from_user_id并将其复制到to_user_id中,但to_user_id没有被复制到from_user_id中:/如果我没有弄错的话,您绝对不能保证to_user_id在from_user_id之前会被更新。我无法理解。它似乎在小提琴上起作用,对吗?请看我的更新答案。好的,你的更新在我看来很好,+1,干杯。