mysql - 没有主键的 MySQL 更新
问题描述
我正在寻找如何在选择上更新像 LIMIT 2,2 这样的行
有一个小例子:
col1 | col2
5 10
5 10
5 10
我想像这样更新第二行:
col1 | col2
5 10
1 10
5 10
我知道行号,所以我想要这样的东西:
UPDATE table
SET col1 = 1
WHERE col1 = 5
LIMIT 2, 1
我们不能使用限制,但我知道这是可以实现的,HeidiSQL 可以做到,我正试图弄清楚他们是怎么做的
谢谢
解决方案
如果您需要更新特定行,则需要一列或多列可用作主键。
SQL 对行集起作用,您只能更新可以识别为属于该集的行。
例如,您可以
UPDATE Customers SET Preferred=True WHERE TotalSales > 1000
这将为销售额超过 1000 的任何客户设置“首选”标志。这可能是一个客户或一百万或没有客户。
进行您询问的单行更新的唯一方法是有某种方法来识别行。在许多数据库服务器中,您可以配置一个 IDENTITY 或 SEQUENCE 列,它们将为每一行自动分配一个唯一 ID。
您可以使用 IDENTITY 属性集添加一个 ID 列,这将使您:
ID | col1 | col2
1 5 10
2 5 10
3 5 10
因此,更新该特定行将是:
UPDATE table SET col1 = 1 WHERE ID = 2
推荐阅读
- pyspark - AWS Glue-如何在 S3 中将动态帧编写为 .txt 文件并使用“|” 作为分隔符
- java - Ldaptive 检索所有用户属性
- c# - 使用 HttpWebRequest 从 C# 上传图像到使用 PUT 方法的 NodeJS Express
- python - 使用 Gensim Word2Vec.most_similar 方法评估相似度时出现“不在词汇表中的单词”
- python - 我正在寻找一种可以根据其内容裁剪和保存图像部分的东西
- docker - 在 macOS BigSur 上的 docker build 上导入 pytorch-encoding 失败
- javascript - Javascript动画按输入类型范围调整两个div的大小
- laravel - 找不到类“AlternativeLaravelCache\Provider\AlternativeCacheStoresServiceProvider”
- python - 导入python时出现ImportError
- arrays - 我无法对以下类型的 json 数据进行排序。tihs json数据是否可以按降序排序