|
|
|
Обновить поле значением другого поля.
|
|||
|---|---|---|---|
|
#18+
Всем привет, Читал, что для перестановки значений полей в одной строке таблицы, нужно использовать JOIN. Но если перестановка не нужна, а нужно просто сохранить значение поля в другом поле, а потом изменить поле, типа Код: sql 1. 2. 3. 4. 5. 6. 7. Попробовал, так работает. Но можно ли это использовать в реальном проекте? Нет подводных камней? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 15:56 |
|
||
|
Обновить поле значением другого поля.
|
|||
|---|---|---|---|
|
#18+
savsoftможно ли это использовать в реальном проекте?Можно. Но нельзя. Чтобы не было мучительно больно, если в очередной версии порядок выполнения присвоений вдруг перекосится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 16:28 |
|
||
|
Обновить поле значением другого поля.
|
|||
|---|---|---|---|
|
#18+
То есть, если нужно присвоить значения трем полям, то использовать два JOIN? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 16:33 |
|
||
|
Обновить поле значением другого поля.
|
|||
|---|---|---|---|
|
#18+
savsoftТо есть, если нужно присвоить значения трем полям, то использовать два JOIN?Ха... это если есть за что зацепиться... а если нет уникального поля, фиг ты нормально свяжешь копии... По уму, это надо делать в три запроса, копируя по одному полю. Или, если значения позволяют, в два запроса (в первом всё собрать в поле F4, а во втором раскидать обратно). Но можно оставить и так... вот только при каждом обновлении тестироваться. И молиться, что в текущей версии наблюдаемый порядок присвоения "слева направо" - детерминированный, а не случайно получился нужный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 16:44 |
|
||
|
Обновить поле значением другого поля.
|
|||
|---|---|---|---|
|
#18+
Akinasavsoftможно ли это использовать в реальном проекте?Можно. Но нельзя. Чтобы не было мучительно больно, если в очередной версии порядок выполнения присвоений вдруг перекосится. Реально мне нужно запомнить значение поля F1 в поле F1Orig, а поле F1 изменить. Где можно об этом посмотреть. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 16:44 |
|
||
|
Обновить поле значением другого поля.
|
|||
|---|---|---|---|
|
#18+
Вот как это звучит в документации: https://dev.mysql.com/doc/refman/8.0/en/update.html The second assignment in the following statement sets col2 to the current (updated) col1 value, not the original col1 value. The result is that col1 and col2 have the same value. This behavior differs from standard SQL. Код: sql 1. Single-table UPDATE assignments are generally evaluated from left to right. For multiple-table updates, there is no guarantee that assignments are carried out in any particular order. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 16:47 |
|
||
|
Обновить поле значением другого поля.
|
|||
|---|---|---|---|
|
#18+
savsoftРеально мне нужно запомнить значение поля F1 в поле F1Orig, а поле F1 изменить.А тип полей - какой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 16:48 |
|
||
|
Обновить поле значением другого поля.
|
|||
|---|---|---|---|
|
#18+
AkinasavsoftРеально мне нужно запомнить значение поля F1 в поле F1Orig, а поле F1 изменить.А тип полей - какой? DATE, нужно сохранить предыдущую дату, а к дате добавить неделю к строкам по условию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 17:23 |
|
||
|
Обновить поле значением другого поля.
|
|||
|---|---|---|---|
|
#18+
Значение F1Orig ДО обновления - какое? NULL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 19:47 |
|
||
|
Обновить поле значением другого поля.
|
|||
|---|---|---|---|
|
#18+
AkinaЗначение F1Orig ДО обновления - какое? NULL? Первый раз да, NULL. А в следующий раз не нуль. Но меня интересует только одно предыдущее значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 19:51 |
|
||
|
Обновить поле значением другого поля.
|
|||
|---|---|---|---|
|
#18+
savsoftПервый раз да, NULL. А в следующий раз не нуль.То есть в общем случае - не NULL? А к значению F1 добавляется всегда строго неделя? или тоже от балды? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 19:54 |
|
||
|
Обновить поле значением другого поля.
|
|||
|---|---|---|---|
|
#18+
AkinasavsoftПервый раз да, NULL. А в следующий раз не нуль.То есть в общем случае - не NULL? А к значению F1 добавляется всегда строго неделя? или тоже от балды? Строго неделя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 20:50 |
|
||
|
Обновить поле значением другого поля.
|
|||
|---|---|---|---|
|
#18+
Мда... крутил-вертел - пока не получается обработать все три варианта, оставаясь в рамках однотабличного запроса. И переменные не помогают. Ещё помыслю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2018, 07:51 |
|
||
|
Обновить поле значением другого поля.
|
|||
|---|---|---|---|
|
#18+
Но значение, к которому добавляется неделя всегда есть. NULL это поле для оригинального значения при его изменении. То есть - есть расписание. И если с определенной даты оно сдвигается, то сдвигаются только даты этого же дня недели. При этом ставится кто сдвигал и когда. Запрос типа Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Получается в моем случае даже не нужно запоминать дату, так как сдвигается на одну неделю, а просто ставить флаг сдвига, а при откате последнего сдвига просто отнимать одну неделю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2018, 13:09 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39743619&tid=1829433]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 149ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...