Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / UPDATE поля с названием из другого поля / 12 сообщений из 12, страница 1 из 1
27.07.2014, 09:18:12
    #38706705
VarrkaN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE поля с названием из другого поля
Всем доброго времени суток. Сразу скажу - неуверен, что это возможно, поэтому решил посоветоваться. Ситуация такая:

Есть таблица table, в ней есть поля field1, field2, field3 и field4. Первые три поля типа INT, field4 типа VARCHAR и принимает значения field1 - field3. Возможно ли вообще реализовать запрос типа:

UPDATE `table` SET `тут_значение_поля_field4`=...

И если возможно - то каким образом?

Заранее благодарен за любой ответ
...
Рейтинг: 0 / 0
27.07.2014, 10:01:30
    #38706709
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE поля с названием из другого поля
VarrkaN,

1. если это задача для одной записи, то

update table1 set
field1 = if(field4='field1', $NEW_VALUE, field1),
field2 = if(field4='field2', $NEW_VALUE, field2),
field3 = if(field4='field3', $NEW_VALUE, field3)

2. если задача для множества записей, то 3 разный апдейта

update table1
set field1 = $NEW_VALUE
where field4='field1'

update table1
set field2 = $NEW_VALUE
where field4='field2'

update table1
set field3 = $NEW_VALUE
where field4='field3'
...
Рейтинг: 0 / 0
27.07.2014, 10:19:40
    #38706710
VarrkaN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE поля с названием из другого поля
javajdbc,

Благодарю, задача для множества значений, и сам реализовал по 2-му алгоритму, просто в оригинале полей 10, а это 10 запросов к БД каждые 5 минут... Вот и думал - есть ли вариант оптимизировать...
...
Рейтинг: 0 / 0
27.07.2014, 11:23:03
    #38706727
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE поля с названием из другого поля
VarrkaN,
используй хранимые процедуры будет один запрос
...
Рейтинг: 0 / 0
27.07.2014, 16:08:31
    #38706776
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE поля с названием из другого поля
VarrkaNВсем доброго времени суток. Сразу скажу - неуверен, что это возможно, поэтому решил посоветоваться. Ситуация такая:

Есть таблица table, в ней есть поля field1, field2, field3 и field4. Первые три поля типа INT, field4 типа VARCHAR и принимает значения field1 - field3. Возможно ли вообще реализовать запрос типа:

UPDATE `table` SET `тут_значение_поля_field4`=...

И если возможно - то каким образом?

Заранее благодарен за любой ответ
дело даже не в том, возможно это или нет, а в том что такого в принципе не должно быть нужно в реляционной СУБД .
...
Рейтинг: 0 / 0
28.07.2014, 05:55:24
    #38706933
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE поля с названием из другого поля
MasterZivVarrkaNВсем доброго времени суток. Сразу скажу - неуверен, что это возможно, поэтому решил посоветоваться. Ситуация такая:

Есть таблица table, в ней есть поля field1, field2, field3 и field4. Первые три поля типа INT, field4 типа VARCHAR и принимает значения field1 - field3. Возможно ли вообще реализовать запрос типа:

UPDATE `table` SET `тут_значение_поля_field4`=...

И если возможно - то каким образом?

Заранее благодарен за любой ответ
дело даже не в том, возможно это или нет, а в том что такого в принципе не должно быть нужно в реляционной СУБД .

ну зачем же так категорично!!!
есть понятие целосности данных, есть понятие оптимизации данных, если это всё вплане изменений - то выливаеться в нормализацию данных, если оптимизировать вплане селекта, порой выгодно денормализировать.

в даном случае денормализация - полный треш. даная база даже не имеет первой нормальной формы.
...
Рейтинг: 0 / 0
28.07.2014, 11:13:53
    #38707078
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE поля с названием из другого поля
Код: sql
1.
2.
3.
4.
5.
6.
UPDATE table
SET field4 = CASE
                 WHEN field4='field1' THEN value1
                 WHEN field4='field2' THEN value2
                 WHEN field4='field3' THEN value3
             END
...
Рейтинг: 0 / 0
28.07.2014, 11:33:29
    #38707096
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE поля с названием из другого поля
Akina
Код: sql
1.
2.
3.
4.
5.
6.
UPDATE table
SET field4 = CASE
                 WHEN field4='field1' THEN value1
                 WHEN field4='field2' THEN value2
                 WHEN field4='field3' THEN value3
             END



и да +

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

автор, тебе бы обратить внимание.

это значит(отсутсвие 1нф) - что структура даже не реляционная. язык SQL разработан вообщемто для реляционной структуры.

так что перспективы свои можешь оценить - ты постоянно будешь мучаться с такой базой
...
Рейтинг: 0 / 0
28.07.2014, 11:53:45
    #38707119
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE поля с названием из другого поля
alex564657498765453так что перспективы свои можешь оценить - ты постоянно будешь мучаться с такой базой+1
Если проводить аналогии с известным анекдотом о фее и солдатах, то ТС только начинает смотреть на гусеницу :)
...
Рейтинг: 0 / 0
28.07.2014, 12:12:36
    #38707138
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE поля с названием из другого поля
tangliralex564657498765453так что перспективы свои можешь оценить - ты постоянно будешь мучаться с такой базой+1
Если проводить аналогии с известным анекдотом о фее и солдатах, то ТС только начинает смотреть на гусеницу :)

ну раз начал, давай анекдот, ибо заинтриговал...я его точно не слышал
...
Рейтинг: 0 / 0
28.07.2014, 12:14:54
    #38707140
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE поля с названием из другого поля
alex564657498765453, постить здесь не могу, т.к. нарушу правила, поэтому вот ссылка
...
Рейтинг: 0 / 0
28.07.2014, 12:18:30
    #38707144
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE поля с названием из другого поля
нашол... если не тот, запость свой

У танка отвалилась гусеница. Солдаты хором дружно чинять её. Тут появляеться фея, и
говорит.
-А что вы делаете, содатики?
-Да вот с траком(гусеницей) тра%%емся
-А хотите по настоящему потра%%тся.
-Конечно хотим.
Тут фея взмахнула палочкой и у танка башня отвалилась.

===
если про этот анекдот, то да - ТС только посмотрел на гусеницу. Так что уважаемы читатели
данного форума. Скоро нас ожидает куча интересных вопросов на тему - используя нанотехнологии из бревна получить новый микропроцессор.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / UPDATE поля с названием из другого поля / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]