Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   UPDATE в mysql (https://forum.antichat.xyz/showthread.php?t=49493)

Micr0b 21.09.2007 12:00

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 версии.

Micr0b 22.09.2007 10:33

спасиб! совсем забыл о подзапросах.. спс

xMash 22.09.2007 12:13

а так:
UPDATE table SET ...... WHERE ips='$ip' ORDER BY id DESC LIMIT 1

xMash 23.09.2007 11:39

…или, даже лучше, так:
Код:

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.)

xMash 24.09.2007 09:58

Цитата:

Сообщение от groundhog
fucker"ok, разве такая конструкция доспустима? Выражения условий должны объединяться логическими операторам (OR, AND EXISTS, etc.)

тем более что об этом говорится в первом посте


Время: 19:13