Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: update mysql, списка строк
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » update mysql, списка строк

Страниц (1): [1]
 

1. DlTA - 21 Августа, 2018 - 13:35:44 - перейти к сообщению
у меня есть список
array('id1'=>'значение1', 'id2'=>'значение2', ...)

есть в mysql возможность обновить список, где для каждого id поля будет обновляться свое значение?

или делать список мелких запросов?
CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE `tab` SET `val1`='param' WHERE `id`=123
2. Мелкий - 21 Августа, 2018 - 13:40:04 - перейти к сообщению
Нарисовать temporary table, insert в неё нужных данных, затем мультитабличным update помержить.
Либо можно on duplicate key update сделать если подходит upsert логика и есть уникальный ключ.
3. DlTA - 21 Августа, 2018 - 16:51:36 - перейти к сообщению
для первого варианта будет вставление в temporary table
INSERT INTO `tab` (`id`, `val`) VALUES (1,'значение1'), (3,'значение3'), ..
но что будет дальше?
можно примеры?
4. Мелкий - 21 Августа, 2018 - 17:06:18 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE phystable JOIN tmptable USING(id) SET phystable.value = tmptable.value;

В синтаксисе update есть пара абзацев про многотабличные апдейты.

 

Powered by ExBB FM 1.0 RC1