Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: UPDATE нескольких строк
 
 автор: dvx   (05.12.2007 в 22:11)   письмо автору
 
 

собственно нужно сделать обновление записей несколких строк (соответственно на каждую строку свое значение)

Собственно итересует можно ли это выполнить одним заросом.

   
 
 автор: Faraon   (05.12.2007 в 22:18)   письмо автору
 
   для: dvx   (05.12.2007 в 22:11)
 

Обновление из PHP-скрипта происходит?

   
 
 автор: dvx   (05.12.2007 в 22:22)   письмо автору
 
   для: Faraon   (05.12.2007 в 22:18)
 

ага.

   
 
 автор: Faraon   (05.12.2007 в 23:22)   письмо автору
 
   для: dvx   (05.12.2007 в 22:22)
 

Здесь наверно надо воспользоваться циклом

   
 
 автор: cheops   (06.12.2007 в 01:20)   письмо автору
 
   для: dvx   (05.12.2007 в 22:11)
 

Несколько строк одновременно можно обновить, если всем присваивается одно значение - разные значения в одном запросе назначить не получится.

   
 
 автор: Trianon   (06.12.2007 в 01:25)   письмо автору
 
   для: cheops   (06.12.2007 в 01:20)
 

ну почему же.
Если требуется присвоить значение выражения, функционально зависящего от значений нетронутых полей модифицируемых записей, то почему бы и нет?

   
 
 автор: dvx   (06.12.2007 в 09:32)   письмо автору
 
   для: Trianon   (06.12.2007 в 01:25)
 

Ок, понял буду делать цикл
тк:
Значения фунционально не зависят,значения принципиально разные.
Единственный вопрос не сильно ли это будет медленно работать..?
по идее больше 30 строк обновлять не придется
даже в среднем 10-15

   
 
 автор: dvx   (06.12.2007 в 09:33)   письмо автору
 
   для: Trianon   (06.12.2007 в 01:25)
 

Ок, понял буду делать цикл
тк:
Значения фунционально не зависят,значения принципиально разные.
Единственный вопрос не сильно ли это будет медленно работать..?
по идее больше 30 строк обновлять не придется
даже в среднем 10-15

   
 
 автор: Trianon   (06.12.2007 в 09:39)   письмо автору
 
   для: dvx   (06.12.2007 в 09:33)
 

Можете попробовать воспользоваться MySQL-функцией ELT()
Но не переусердствуйте, тут и до изврата недалеко.

   
 
 автор: dvx   (06.12.2007 в 10:04)   письмо автору
 
   для: Trianon   (06.12.2007 в 09:39)
 

Хм, не совсем догоняю как она может мне помоччь...


ELT(N,str1,str2,str3,...)

Возвращает str1, если N = 1, str2, если N = 2, и так далее. Если N меньше, чем 1 или больше, чем число аргументов, возвращается NULL. Функция ELT() является дополненительной по отношению к функции FIELD():


mysql> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');
-> 'ej'

mysql> SELECT ELT(4, 'ej', 'Heja', 'hej', 'foo');
-> 'foo'

   
 
 автор: Trianon   (06.12.2007 в 13:21)   письмо автору
 
   для: dvx   (06.12.2007 в 10:04)
 


INSERT INTO tbl (id, name) 
  VALUES 
     (1, ''),
     (2, ''),
     (3, '') ;

UPDATE  tbl 
  SET name = ELT(id, 'Иванов', 'Петров','Сидоров' ) 
  WHERE id BETWEEN 1 AND 3 ;

   
 
 автор: cheops   (06.12.2007 в 12:21)   письмо автору
 
   для: Trianon   (06.12.2007 в 01:25)
 

>ну почему же.
>Если требуется присвоить значение выражения, функционально зависящего от значений
>нетронутых полей модифицируемых записей, то почему бы и нет?
Это да (решил просто не усложнять ответ :).

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования