Просмотр полной версии : UPDATE в mysql
Нехотелось создавать тему, вопрос маленький =\
Мне нужно зделать выборку с упдейтом. Тоись занести в БД обновленые даные..
Проблема такова когда делаю запрос:
UPDATE `table` SET ...... WHERE ips='$ip';
то тогда обновляюця в БД столбцы где есть одинаковые айпи..
Мне нужно зделать одновление по ip и по последньому id
Пробвал зделать так:
UPDATE `table` SET ...... WHERE ips='$ip', max(id);
но ошыбка.. хелп ми))
Joker-jar
21.09.2007, 12:22
UPDATE `table` SET ...... WHERE ips='$ip' and id=(select+max(id)+from+table);
Может как-нибудь так? Хотя наверное можно как то попроще
groundhog
21.09.2007, 12:22
А если сначала сделать:
SELECT MAX(id) FROM some_table WHERE ips='...' GROUP BY ips ORDER BY id ASC
а уже потом:
UPDATE some_table SET ... WHERE id='...'
З.Ы. Джок, если у него четёрка на хосте, сложный запрос не пройдёт.
guest3297
21.09.2007, 12:56
подзапросы рабтают с 4.1 версии.
спасиб! совсем забыл о подзапросах.. спс
а так:
UPDATE table SET ...... WHERE ips='$ip' ORDER BY id DESC LIMIT 1
…или, даже лучше, так:
UPDATE table SET ...... WHERE ips=last_insert_id()
fucker"ok
23.09.2007, 15:25
UPDATE `table` SET ...... WHERE ips='$ip', id=max(id);
groundhog
24.09.2007, 09:46
... WHERE ips='$ip', id=max(id);
fucker"ok, разве такая конструкция доспустима? Выражения условий должны объединяться логическими операторам (OR, AND EXISTS, etc.)
fucker"ok, разве такая конструкция доспустима? Выражения условий должны объединяться логическими операторам (OR, AND EXISTS, etc.)
тем более что об этом говорится в первом посте
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot