ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |

21.09.2007, 12:00
|
|
Участник форума
Регистрация: 14.01.2006
Сообщений: 242
Провел на форуме: 2630617
Репутация:
245
|
|
UPDATE в mysql
Нехотелось создавать тему, вопрос маленький =\
Мне нужно зделать выборку с упдейтом. Тоись занести в БД обновленые даные..
Проблема такова когда делаю запрос:
UPDATE `table` SET ...... WHERE ips='$ip';
то тогда обновляюця в БД столбцы где есть одинаковые айпи..
Мне нужно зделать одновление по ip и по последньому id
Пробвал зделать так:
UPDATE `table` SET ...... WHERE ips='$ip', max(id);
но ошыбка.. хелп ми))
|
|
|

21.09.2007, 12:22
|
|
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме: 4172659
Репутация:
646
|
|
UPDATE `table` SET ...... WHERE ips='$ip' and id=(select+max(id)+from+table);
Может как-нибудь так? Хотя наверное можно как то попроще
|
|
|

21.09.2007, 12:22
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
А если сначала сделать:
SELECT MAX(id) FROM some_table WHERE ips='...' GROUP BY ips ORDER BY id ASC
а уже потом:
UPDATE some_table SET ... WHERE id='...'
З.Ы. Джок, если у него четёрка на хосте, сложный запрос не пройдёт.
Последний раз редактировалось groundhog; 21.09.2007 в 12:25..
|
|
|

21.09.2007, 12:56
|
|
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
Провел на форуме: 3887520
Репутация:
2996
|
|
подзапросы рабтают с 4.1 версии.
|
|
|

22.09.2007, 10:33
|
|
Участник форума
Регистрация: 14.01.2006
Сообщений: 242
Провел на форуме: 2630617
Репутация:
245
|
|
спасиб! совсем забыл о подзапросах.. спс
|
|
|

22.09.2007, 12:13
|
|
Новичок
Регистрация: 19.09.2007
Сообщений: 17
Провел на форуме: 73734
Репутация:
9
|
|
а так:
UPDATE table SET ...... WHERE ips='$ip' ORDER BY id DESC LIMIT 1
|
|
|

23.09.2007, 11:39
|
|
Новичок
Регистрация: 19.09.2007
Сообщений: 17
Провел на форуме: 73734
Репутация:
9
|
|
…или, даже лучше, так:
Код:
UPDATE table SET ...... WHERE ips=last_insert_id()
|
|
|

23.09.2007, 15:25
|
|
Познавший АНТИЧАТ
Регистрация: 21.11.2004
Сообщений: 1,137
Провел на форуме: 2487541
Репутация:
761
|
|
UPDATE `table` SET ...... WHERE ips='$ip', id=max(id);
|
|
|

24.09.2007, 09:46
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
... WHERE ips='$ip', id=max(id);
fucker"ok, разве такая конструкция доспустима? Выражения условий должны объединяться логическими операторам (OR, AND EXISTS, etc.)
|
|
|

24.09.2007, 09:58
|
|
Новичок
Регистрация: 19.09.2007
Сообщений: 17
Провел на форуме: 73734
Репутация:
9
|
|
Сообщение от groundhog
fucker"ok, разве такая конструкция доспустима? Выражения условий должны объединяться логическими операторам (OR, AND EXISTS, etc.)
тем более что об этом говорится в первом посте
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|