sql - 更新 SQL 表中数据选择中的列并保存
问题描述
我有以下名为datatable
.
date source reading tday yday
---------------------------------------------
2021-05-27 x1 x x x
2021-05-27 x2 x x x
2021-05-27 x3 x x x
2021-05-28 x1 x x x
2021-05-28 x2 x x x
2021-05-28 x3 x x x
2021-05-31 x1 x x x
2021-05-31 x2 x x x
2021-05-31 x3 x x x
我想将日期从 更新2021-05-31
到2021-06-01
,我只有 1 个数据库,我担心会弄乱数据,我该怎么做?
它应该看起来像这样
date source reading tday yday
----------------------------------------------
2021-05-27 x1 x x x
2021-05-27 x2 x x x
2021-05-27 x3 x x x
2021-05-28 x1 x x x
2021-05-28 x2 x x x
2021-05-28 x3 x x x
2021-06-01 x1 x x x
2021-06-01 x2 x x x
2021-06-01 x3 x x x
我想它会是这样的
UPDATE date
FROM datatable
WHERE date = '2021-05-31' TO '2021-06-01';
或者
UPDATE datatable
SET date = '2021-06-01'
WHERE date = '2201-05-31';
日期列是日期时间格式。
编辑。
如何先添加数据,然后删除旧数据?
就像,将 2021 年 5 月 31 日的数据复制为 2021 年 6 月 1 日,(除日期外,所有其他列都是 2021 年 5 月 31 日数据的列)
date source reading tday yday
---------------------------------------------
2021-05-27 x1 x x x
2021-05-27 x2 x x x
2021-05-27 x3 x x x
2021-05-28 x1 x x x
2021-05-28 x2 x x x
2021-05-28 x3 x x x
2021-05-31 x1 x x x
2021-05-31 x2 x x x
2021-05-31 x3 x x x
2021-06-01 x1 x x x
2021-06-01 x2 x x x
2021-06-01 x3 x x x
然后删除2021-05-31所在的行,所以我最终得到
为此,我猜查询将是:
DELETE FROM datatable
WHERE date = '2021-05-31';
date source reading tday yday
--------------------------------------------
2021-05-27 x1 x x x
2021-05-27 x2 x x x
2021-05-27 x3 x x x
2021-05-28 x1 x x x
2021-05-28 x2 x x x
2021-05-28 x3 x x x
2021-06-01 x1 x x x
2021-06-01 x2 x x x
2021-06-01 x3 x x x
解决方案
为获得最安全的结果,请按照 Adminer 数据库解决方案对没有主键的表执行此操作:
更新数据表 SET date=“new-date” WHERE date=“old-date” AND source=“previous-source” AND reading=“previous-reading” AND 其余字段。
但是,为了让您的生活更轻松,我建议添加 id 列 (AUTO_INCREATMENT & PRIMARY_KEY),并使用以下方法更新数据:
更新您的更新查询...。WHERE id="target-id"</p>
推荐阅读
- spring-boot - 在百里香模板中显示值
- animation - 如何在 Kotlin 中为 Kotlin 中的场景动画调试“java.lang.NoSuchMethodError”?
- python - 在 Cython 中使用 C++ 的`str.erase()`
- highcharts - 在同一页面中显示多个图表
- javascript - 如何在画布面料JS上绘制线条动画
- python - 无法在 tensorflow-gpu 上使用 GPU:“无法创建 cudnn 句柄:CUDNN_STATUS_INTERNAL_ERROR”
- c# - 我可以在另一个线程上放一个取消按钮吗?
- json - 如何在后端从 JSON 读取数组
- angular - ng-bootstrap 下拉位置不适用于 Angular 7
- wordpress - Apache2 设置多个站点,子域不起作用?