SQL更新根据行序列号查询

时间:2016-08-17 10:06:14

标签: sql phpmyadmin

我有一个表,我想使用SQL查询语句更新此表。 例如,我如何编写更新第3行的语句? 我的意思是我想根据表中的外观顺序更新某一行。

2 个答案:

答案 0 :(得分:0)

  

第3行

什么时候订购? SQL数据库不保证任何给定查询中的记录顺序,除非明确给出ORDER BY子句。

使用WHERE子句标识要更新的行。例如:

UPDATE SomeTable SET SomeColumn = 'Some Value' WHERE AnotherColumn = 'Another Value'

您可以将许多布尔逻辑链接到该WHERE子句中,以创建更复杂的方法来标识您要更新的记录。但重点是你必须确定记录。 "第3行"对SQL来说没什么意义。

一旦你ORDER BY条款,你或许可以做一些更复杂的事情。例如,对子查询中的记录进行排序,并使用该查询中的标识符。所以你可能会得到第三排"像这样:

SELECT ID FROM SomeTable ORDER BY ID OFFSET 2 LIMIT 1

然后在UPDATE

中使用它
UPDATE SomeTable SET SomeColumn = 'Some Value'
WHERE ID IN (SELECT ID FROM SomeTable ORDER BY ID OFFSET 2 LIMIT 1)

(假设MySQL,因为你没有指定,但其他RDBMS引擎具有相似的功能)

答案 1 :(得分:0)

我不知道您正在使用哪个DBMS。如果您正在使用Oracle DB,则可以使用伪列ROWID和ROWNUM来实现此目的。