Обновить всю строку в 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());