Обновить всю строку в MySQL

Я новичок в MySQL, и я хочу обновить всю строку в MySQL с помощью нового массива, пока все примеры запроса Update включают указание имени столбца и нового значения для этого столбца, например:

"UPDATE tablename SET columnname = '".$new_value."' WHERE columnname = '".$value."'";

Как я могу обновить всю запись с помощью запроса на обновление или использовать запрос замены?

Любые советы будут оценены.

Изменить: есть ли запрос, который не требует указания всех имен столбцов и новых значений столбца?

В принципе, я хочу иметь запрос, который выглядит примерно так:

Обновить entirerow с thisarray, где primarykeycolumn = 'thisvalue'

Ответ 1

Для этого вам нужно

  • Перечислить все значения
  • Знайте столбец первичного ключа и значение

Таким образом, окончательный запрос будет выглядеть как

UPDATE tablename
   SET col1 = 'val1', col2 = 'val2' ...
 WHERE id = id_value

Нет никакой волшебной команды для обновления "цельной строки" в sql, отличной от приведенной выше. И REPLACE определенно не то, что вам нужно здесь.

Ответ 2

Это зависит от того, хотите ли вы сохранить идентификатор или нет, при условии, что идентификатор autoincrement.

REPLACE INTO mytable VALUES( new array ) .... также обновит идентификатор, так как он действительно просто эмулирует DELETE и INSERT.

Если вы хотите сохранить идентификатор, используйте UPDATE mytable SET foo='bar', baz='bat' WHERE id=12

Как FYI, REPLACE обычно удобен для отображения таблиц, где уникальное поле или составной первичный ключ не являются автоинкрементами.

Ответ 3

Вы можете сделать все это в одном запросе. Вы просто добавляете больше this =, которые разделяются запятыми:

"UPDATE tablename 
SET column1name = '".$new_value1."', 
    column2name = '".$new_value2."', 
    column3name = '".$new_value3."' 
WHERE columnname = '".$value."'"

Ответ 4

Это правильный путь.

UPDATE TABLENAME SET COLUMNAME = VALUE, COLUMN2NAME = VALUE, ETC WHERE CONDITION

Ответ 5

Да, есть аналогичный способ...

$updateSQL = sprintf("UPDATE hotel <br>SET hotel_name=%s, contact_person_1=%s <br>WHERE hotel_id=%s",<br>
                       $_POST['hotel_name'],<br>
                       $_POST['contact_person_1'],<br>
                       $_POST['hotel_id']);

mysql_select_db($database_hotelbookingryan, $hotelbookingryan);
$Result1 = mysql_query($updateSQL, $hotelbookingryan) or die(mysql_error());