2016-08-17 3 views
-1

У меня есть таблица, и я хочу обновить эту таблицу с помощью запроса SQL-запроса. Как я могу написать инструкцию для обновления третьей строки? Я имею в виду, что я хочу сделать обновление до определенной строки в соответствии с ее порядком появления в таблице.SQL-запрос на обновление в соответствии с порядковым номером строки

+1

показать, что вы пробовали ... и опубликовать некоторые коды и структуру ваших таблиц .... – ASK

+0

Добавить пример данных таблицы до и после обновления. – jarlh

+1

Строки не имеют никакой последовательности в таблице Sql. СУБД Sql может возвращать строки в любом порядке, если не указано предложение ORDER BY. – Serg

ответ

0

третий ряд

При заказе от чего? Базы данных SQL не гарантируют порядок записей в любом заданном запросе, если явно не указано условие ORDER BY.

Определите строку, которую вы хотите обновить, с помощью предложения WHERE. Например:

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

Вы можете цепи вместе много булевой логики в том WHERE пункте создавать более сложные способы идентификации записи (ей), которые вы хотите обновить. Но дело в том, что вам нужно идентифицировать запись. «Третья строка» ничего не значит для SQL.


После того, как вы сделать есть что ORDER BY пункт, возможно, вы можете сделать что-то более сложное. Например, сортируйте записи в подзапросе и используйте идентификатор из этого запроса. Таким образом, вы можете получить «3-й ряд», как это:

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 двигатели имеют схожие возможности)

+0

привет, спасибо за ваш быстрый ответ. я хочу, чтобы отредактировать третью строку таблицы без какого-либо заказа, только в соответствии с порядком ее появления в таблице. и я не хочу использовать другие столбцы, потому что я генерирую динамический код, и в моем коде пользователь может редактировать все столбцы таблицы, поэтому я не знаю, на каком столбце я должен полагаться, чтобы положить его в где условие. – Nour

0

Я не знаю, какую СУБД вы используете. Если вы используете Oracle DB, для этой цели можно использовать псевдоколонны ROWID и ROWNUM.

+0

Я нахожусь на phpMyadmin – Nour

Смежные вопросы