| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > занести значения в разные строки |
| Автор: KoLiZeI 20.3.2008, 10:51 |
| Народ подскажите можно ли занести одним запросом значения сразу в несколько строк Допустим есть таблица <название> <Значение> название1 Значение1 название2 Значение2 название3 Значение3 название4 Значение4 Нужно обновить значения во всех полях, нужно вызывать UPDATE для каждого поля, или можно сделать одним запросом? |
| Автор: KoLiZeI 20.3.2008, 11:16 |
| В каком смысле? Строки заданы в виде название->значение Таких строк N Допустим что значения из этих строк выводятся в форме и при нажатии Сохранить эти строки должны обновиться, точнее 1 поле в кажой строке! |
| Автор: skyboy 20.3.2008, 11:38 |
| и как БД "догадается", в каких записях какие значения вставлять? нет, тебе надо прописывать явно. другой вопрос, что SQL-запрос можно сгенерировать, а не указывать руками все возможные сочетания "имя+значение" |
| Автор: Akina 20.3.2008, 12:48 |
| Тогда по 1 запросу на каждую запись. Вот если бы на сервере была таблица соответствия обновлений - обошелся бы одним запросом. |
| Автор: nbsp 10.4.2008, 13:22 |
| мой случай: есть таблица (mytable): <id> <count> 1 10 4 5 5 55 9 11 допустим, через форму передаются значения id и новые значения count. хотелось бы одним запросом обновить значения, сгенерировав запрос. это "псевдо синтаксис", естественно он НЕ рабочий (взято у человека с аналогичной задачей): UPDATE mytable SET count = '111, 333, 777, 222' WHERE id = '1, 4, 5, 9' Возможно ли сделать подобное? |
| Автор: Akina 10.4.2008, 13:34 |
| Нет. Однако можно обойтись двумя запросами. Создаешь временную таблицу той же структуры (в принципе это третий запрос), и потом insert into temp_table(id, val) values (...) и затем update из этой временной таблицы. |
| Автор: nbsp 10.4.2008, 14:09 |
| |
| Автор: mishaSL 10.4.2008, 16:19 | ||
nbsp, можно одним запросом, к примеру так:
|
| Автор: Feldmarschall 10.4.2008, 17:13 |
| только опять же непонятно - зачем. |
| Автор: mishaSL 10.4.2008, 17:19 |
Пример, который я привел, использую когда необходимо обновить сразу несколько записей и при этом известно их ID. К примеру, обновление порядка следования пунктов меню или других элементов. |
| Автор: Feldmarschall 10.4.2008, 17:22 |
| ну, я не к тебе лично, а вообще к повторяющейся уже в который раз суете "одним запросом". точно так же обновление порядков можно сделать двумя последовательными, и ничего не случится. |
| Автор: nbsp 10.4.2008, 20:40 |
| mishaSL, большое спасибо за ваш вариант, всё отлично работает. Feldmarschall, приведите, пожалуйста, ваш вариант запроса. |
| Автор: Feldmarschall 10.4.2008, 21:38 |
| nbsp, если из моих слов вариант непонятен, то приводить его тем более смысла нет. |