首页 > 解决方案 > 如何用另一个表中的列中的数据替换表中的一列中的数据?

问题描述

我有一个名为 users 的表,其中包含 first_name 和 last_name 列,我想对这些列中的值进行洗牌,以便不再将这些名称识别为真实的人。

我认为实现此目的的一种方法是创建一个随机表,该表从随机排序的每一列中获取值,然后将这些值设置回用户表中,但我似乎无法让它工作。

我试过的代码是:

CREATE TABLE shuffle SELECT first_name FROM users ORDER BY RAND();
INSERT INTO users (first_name) SELECT first_name FROM shuffle;

当我运行它时,我没有收到任何错误消息,但它没有做我想要的。这是正确的方法吗?我究竟做错了什么?

标签: mysqldatabase

解决方案


如果你想更新用户表中的列,这应该可以工作 UPDATE users SET first_name=(SELECT first_name FROM users ORDER BY RAND() LIMIT 1) ,但我有点困惑,因为在你的查询中你使用 users2 表,我不知道它是什么。它是副本还是临时表?您是否需要更新用户表或创建带有混洗值的表副本?


推荐阅读