我有一个表,我想使用SQL查询语句更新此表。 例如,我如何编写更新第3行的语句? 我的意思是我想根据表中的外观顺序更新某一行。
答案 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来实现此目的。