mysql - 如何用另一个表中的列中的数据替换表中的一列中的数据?
问题描述
我有一个名为 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;
当我运行它时,我没有收到任何错误消息,但它没有做我想要的。这是正确的方法吗?我究竟做错了什么?
解决方案
如果你想更新用户表中的列,这应该可以工作
UPDATE users SET first_name=(SELECT first_name FROM users ORDER BY RAND() LIMIT 1)
,但我有点困惑,因为在你的查询中你使用 users2 表,我不知道它是什么。它是副本还是临时表?您是否需要更新用户表或创建带有混洗值的表副本?
推荐阅读
- ms-access - 如何在使用新版本打开时替换前端数据库
- reactjs - TypeError:state.slice 不是函数(redux)
- swift - 如何在 SwiftUI 生命周期中删除 macOS 中的最大化、最小化和关闭按钮?
- r - 来自 gmp 的 big int 不能与 R 中的 Reduce(accumulate) 一起正常工作
- python - python函数返回不必要的元组值
- python - 热显示来自 django 表单的最新保存的图像?
- pandas - .apply() 中填充 nan 值的条件语句不起作用
- android - 如何在 Recycler View GridLayout 中更改跨度大小期间显示进度条?
- angular - 将可本地化的文本文件添加到 Angular
- google-apps-script - 从谷歌表格打开谷歌/任何其他搜索引擎标签