Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Как правильно составить запрос  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18351
alex-ls
по-моему автор хочет, чтобы update проходил только один раз: первый :-)

Третьим будете, коллега!
17 ноя 06, 14:51    [3415815]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
Vadim Zh
Member

Откуда: Беларусь -> Москва
Сообщений: 297
alex-ls
по-моему автор хочет, чтобы update проходил только один раз: первый :-)


оффтоп
1) Хочу пива;
2) Жена против.
вот у автора и возник вопрос. :-)
17 ноя 06, 14:52    [3415816]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116202
Elic
Vadim Zh
dmidek
RESET !
По- прежнему мечтаю о кнопке "Редактировать / Удалить сообшение"
аналогично :-)
Парни, я много думал. И понял (Картинка с другого сайта.). Она отсутствует во благо, ибо конкретно дисциплинирует.
"Семь раз отмерь - один раз отрежь" (c) Народ.

Да. Мне так и на ОНС сказали ...
17 ноя 06, 14:52    [3415821]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6913
andrey_anonymous
alex-ls
по-моему автор хочет, чтобы update проходил только один раз: первый :-)

Третьим будете, коллега!

не понял?
17 ноя 06, 14:58    [3415867]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
Elic
Member

Откуда:
Сообщений: 29980
alex-ls
andrey_anonymous
alex-ls
по-моему автор хочет, чтобы update проходил только один раз: первый :-)
Третьим будете, коллега!
не понял?
Значит до тебя так думали уже двое :)
17 ноя 06, 15:00    [3415888]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18351
alex-ls
andrey_anonymous
alex-ls
по-моему автор хочет, чтобы update проходил только один раз: первый :-)

Третьим будете, коллега!
не понял?

dmidek, Vadim Zh - объясните или мне опять просить у alex-ls тесткейс, в котором второй update "затрет" первый?
17 ноя 06, 15:01    [3415892]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116202
andrey_anonymous
alex-ls
andrey_anonymous
alex-ls
по-моему автор хочет, чтобы update проходил только один раз: первый :-)

Третьим будете, коллега!
не понял?

dmidek, Vadim Zh - объясните или мне опять просить у alex-ls тесткейс, в котором второй update "затрет" первый?

ИМХО alex-ls ни при чем. Он же написал, что автор так думает ...
17 ноя 06, 15:04    [3415915]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6913
Elic
alex-ls
andrey_anonymous
alex-ls
по-моему автор хочет, чтобы update проходил только один раз: первый :-)
Третьим будете, коллега!
не понял?
Значит до тебя так думали уже двое :)


andrey_anonymous
alex-ls
andrey_anonymous
alex-ls
по-моему автор хочет, чтобы update проходил только один раз: первый :-)

Третьим будете, коллега!
не понял?

dmidek, Vadim Zh - объясните или мне опять просить у alex-ls тесткейс, в котором второй update "затрет" первый?

я конечно знал, что телепатия это тяжелое занятие, но никак не думал, что на меня сразу набросяться Elic и andrey_anonymous c просьбами тесткейса
17 ноя 06, 15:40    [3416265]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
peter6636
Member

Откуда:
Сообщений: 1283
dmidek
alex-ls
peter6636

1) update ... set ip=3333 where мак=zzz and ip=ssss
2) update ... set ip=pppp where мак=zzz and ip=ssss

зачем это? Нельзя отсеять лишние строчки, для чего апдейт одной строки на разные значения


Я попробую потелепатить
Я думаю, что у автора не одна строка должна апдейтиться, а несколько ...
Если это так, то автору надо определить некие отличительные особенности строк ...

вот как их определить эти особенности хз,в них то весь и прикол

первый вариант самый простой:
берем первую строку из файла:
zzz 3333
в базе данных есть ОДНА строчка с таким маком
zzz 222
айпишники не совпали--->обновляем айпишник на 3333
берем вторую строчку из файла, и вот самое интересное,пришла такая вот строка:
zzz 222
в базе такого айпи адреса уже нету, потому что он обновился в первом случае на айпи 3333,
а раз нету,он снова ему делает апдейт и устанавливает айпишник 222,вот такая вот канитель
второй вариант: когда в базе несколько строк с одинаковым маком, тут вообще жопа наступает
17 ноя 06, 15:55    [3416371]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
Elic
Member

Откуда:
Сообщений: 29980
peter6636
тут вообще ж*п@ наступает
Она наступила раньше, когда чьё-то отуманенное сознание "спроектировало" это.
17 ноя 06, 16:02    [3416441]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6913
peter6636
тут вообще жопа наступает

кому ж***, а кому нет проблем.
1. Загружаете все строки из файла в коллекцию(как вариант в таблицу)
2. Анализируете на дубли
3. Если дублей нет, то делайте, что делали
4. Все дубли в озвращаем в лог, типа поправьте...
Последовательный доступ здесь явно ни к чему.
17 ноя 06, 16:03    [3416456]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116202
peter6636
dmidek
alex-ls
peter6636

1) update ... set ip=3333 where мак=zzz and ip=ssss
2) update ... set ip=pppp where мак=zzz and ip=ssss

зачем это? Нельзя отсеять лишние строчки, для чего апдейт одной строки на разные значения


Я попробую потелепатить
Я думаю, что у автора не одна строка должна апдейтиться, а несколько ...
Если это так, то автору надо определить некие отличительные особенности строк ...

вот как их определить эти особенности хз,в них то весь и прикол

первый вариант самый простой:
берем первую строку из файла:
zzz 3333
в базе данных есть ОДНА строчка с таким маком
zzz 222
айпишники не совпали--->обновляем айпишник на 3333
берем вторую строчку из файла, и вот самое интересное,пришла такая вот строка:
zzz 222
в базе такого айпи адреса уже нету, потому что он обновился в первом случае на айпи 3333,
а раз нету,он снова ему делает апдейт и устанавливает айпишник 222,вот такая вот канитель

Давайте определимся, а почему Вас такое развитие событий не устраивает ?
17 ноя 06, 16:04    [3416468]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
peter6636
Member

Откуда:
Сообщений: 1283
dmidek
peter6636
dmidek
alex-ls
peter6636

1) update ... set ip=3333 where мак=zzz and ip=ssss
2) update ... set ip=pppp where мак=zzz and ip=ssss

зачем это? Нельзя отсеять лишние строчки, для чего апдейт одной строки на разные значения


Я попробую потелепатить
Я думаю, что у автора не одна строка должна апдейтиться, а несколько ...
Если это так, то автору надо определить некие отличительные особенности строк ...

вот как их определить эти особенности хз,в них то весь и прикол

первый вариант самый простой:
берем первую строку из файла:
zzz 3333
в базе данных есть ОДНА строчка с таким маком
zzz 222
айпишники не совпали--->обновляем айпишник на 3333
берем вторую строчку из файла, и вот самое интересное,пришла такая вот строка:
zzz 222
в базе такого айпи адреса уже нету, потому что он обновился в первом случае на айпи 3333,
а раз нету,он снова ему делает апдейт и устанавливает айпишник 222,вот такая вот канитель

Давайте определимся, а почему Вас такое развитие событий не устраивает ?

потому что каждый раз при апдейте, моя прога шлет админу писмьо с оповещением про все изменения,и он получает фигню разную
17 ноя 06, 16:07    [3416490]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18351
peter6636
в базе данных есть ОДНА строчка с таким маком

Еси верить Вашему первому посту, то получаем:
SQL> select * from ane_t;

MAC                IP
---------- ----------
zzz               222

SQL> --берем первую строку из файла: zzz 3333
SQL> --->обновляем айпишник на 3333
SQL> update ane_t set ip=3333 where mac='zzz' AND IP=222; -- так написано в первом посте

1 row updated

SQL> --берем вторую строчку из файла, и вот самое интересное,пришла такая вот строка: zzz 222
SQL> update ane_t set ip=222 where mac='zzz' AND IP=222; -- так написано в первом посте

0 rows updated

SQL> select * from ane_t;

MAC                IP
---------- ----------
zzz              3333

SQL> 
Предположим, что Вы ошиблись и речь идет о назначении ip-адресов dhcp-сервером.
Тогда вариантов три:
1) Все работает именно так, как должно - таблица всегда содержит последний присвоенный ip.
2) Вам нужна история назначенных ip - делайте историю.
3) Я не понял Вашей задачи.

Выберите пожалуйста правильный ответ и подробнее опишите задачу.
17 ноя 06, 16:08    [3416498]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
peter6636
Member

Откуда:
Сообщений: 1283
andrey_anonymous
peter6636
в базе данных есть ОДНА строчка с таким маком

Еси верить Вашему первому посту, то получаем:
SQL> select * from ane_t;

MAC                IP
---------- ----------
zzz               222

SQL> --берем первую строку из файла: zzz 3333
SQL> --->обновляем айпишник на 3333
SQL> update ane_t set ip=3333 where mac='zzz' AND IP=222; -- так написано в первом посте

1 row updated

SQL> --берем вторую строчку из файла, и вот самое интересное,пришла такая вот строка: zzz 222
SQL> update ane_t set ip=222 where mac='zzz' AND IP=222; -- так написано в первом посте

0 rows updated

SQL> select * from ane_t;

MAC                IP
---------- ----------
zzz              3333

SQL> 
Предположим, что Вы ошиблись и речь идет о назначении ip-адресов dhcp-сервером.
Тогда вариантов три:
1) Все работает именно так, как должно - таблица всегда содержит последний присвоенный ip.
2) Вам нужна история назначенных ip - делайте историю.
3) Я не понял Вашей задачи.

Выберите пожалуйста правильный ответ и подробнее опишите задачу.

немножко не правильно там написал: второй запрос такой update ane_t set ip=222 where mac='zzz' AND IP=3333;
17 ноя 06, 16:15    [3416563]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18351
peter6636
немножко не правильно там написал: второй запрос такой update ane_t set ip=222 where mac='zzz' AND IP=3333;

andrey_anonymous
1) Все работает именно так, как должно - таблица всегда содержит последний присвоенный ip.
2) Вам нужна история назначенных ip - делайте историю.
3) Я не понял Вашей задачи.

Выберите пожалуйста правильный ответ и подробнее опишите задачу.


Мы тут хором гадать должны в пятницу вечером? Так это вряд ли - пиво стынет...
17 ноя 06, 16:19    [3416605]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Вы напишите, что Вы хотите - ИМХО когда Вы остановитесь и попробуете словами сформулировать, Вы сами себе и ответите.
17 ноя 06, 16:19    [3416608]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
peter6636
Member

Откуда:
Сообщений: 1283
Jannny
Вы напишите, что Вы хотите - ИМХО когда Вы остановитесь и попробуете словами сформулировать, Вы сами себе и ответите.

неужели тут не ясно написано:
берем первую строку из файла:
zzz 3333
в базе данных есть ОДНА строчка с таким маком
zzz 222
айпишники не совпали--->обновляем айпишник на 3333
берем вторую строчку из файла, и вот самое интересное,пришла такая вот строка:
zzz 222
в базе такого айпи адреса уже нету, потому что он обновился в первом случае на айпи 3333,
а раз нету,он снова ему делает апдейт и устанавливает айпишник 222
17 ноя 06, 16:21    [3416621]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18351
peter6636
Jannny
Вы напишите, что Вы хотите - ИМХО когда Вы остановитесь и попробуете словами сформулировать, Вы сами себе и ответите.

неужели тут не ясно написано:

Из этого ясно только то, что Вам чем-то не нравится существующее положение дел.
Но что Вы хотите получить в итоге - совершенно непонятно.
Боюсь, если Вы не найдете сил внятно изложить задачу, то Вам поможет только господь Бог.
17 ноя 06, 16:24    [3416658]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
peter6636
Jannny
Вы напишите, что Вы хотите - ИМХО когда Вы остановитесь и попробуете словами сформулировать, Вы сами себе и ответите.

неужели тут не ясно написано:
Помните школу? Задачу обычно расписывали:

Дано:
Результат:

Вот и распишите. Особенно напрягитесь для графы результат ;)
17 ноя 06, 16:26    [3416693]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116202
Рискну предположить, что автор не хочет обновлять одну и ту же строку два раза.
В этом случае поможет добавление колонки- флажка updated со значениями 0 (начальное)
и 1...
17 ноя 06, 16:29    [3416723]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
MAPA3OT
Member

Откуда: Над трубами, во чреве коих Яуза живет.
Сообщений: 2675
Если я правильно понял, то почти все как писал
alex-ls, то есть:
1)Загружаете все строки из файла в коллекцию(как вариант в таблицу)
2)анализируем все записи из в файле и из всех оставляем самую новую, то есть из

111 222
111 333
222 444
111 555

получаем

111 555
222 444

3) загружаем все в базу как и до того
4) админ получает только одно сообщение об изменении

Это должно было быть?

Кстати, может я не прав, но исловие после and на фиг не надо, вы ведь все рано ничего не сможете сделать если поле mak не уникально.
17 ноя 06, 17:22    [3417269]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6913
MAPA3OT
Если я правильно понял, то почти все как писал
alex-ls, то есть:

почти пункт 2 на вкус автора, что он хочет, то пусть и делает с дублями, берет последний или первый или случайный, или вообще отбрасывает, если дублируется...
ЗЫ. Хоть кто-то обратил внимание на мой пост
17 ноя 06, 17:25    [3417290]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
peter6636
Member

Откуда:
Сообщений: 1283
MAPA3OT
Если я правильно понял, то почти все как писал
alex-ls, то есть:
1)Загружаете все строки из файла в коллекцию(как вариант в таблицу)
2)анализируем все записи из в файле и из всех оставляем самую новую, то есть из

111 222
111 333
222 444
111 555

получаем

111 555
222 444

3) загружаем все в базу как и до того
4) админ получает только одно сообщение об изменении

Это должно было быть?

Кстати, может я не прав, но исловие после and на фиг не надо, вы ведь все рано ничего не сможете сделать если поле mak не уникально.

никаких новых не оставляем, т.к. за за одной сетевой картой закреплено 2 айпишника, которые нельзя ни в коем случае отбрасывать
17 ноя 06, 17:51    [3417526]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно составить запрос  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6913
peter6636
никаких новых не оставляем, т.к. за за одной сетевой картой закреплено 2 айпишника, которые нельзя ни в коем случае отбрасывать

alex-ls
почти пункт 2 на вкус автора, что он хочет, то пусть и делает с дублями, берет последний или первый или случайный, или вообще отбрасывает, если дублируется...

ЧИТАЙТЕ ВНИМАТЕЛЬНЕЕ!
17 ноя 06, 17:55    [3417571]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Oracle Ответить