|
|
|
| К примеру есть таблица 'onl', нужно добавить новую запись, если значение поля с INDEX'ом PRIMARY не повторяется или же вообще нет, а если сущесвует, то заменить все значения полей на новые.
Помогите составить запрос плииз. | |
|
|
|
|
|
|
|
для: NightSoldier
(23.09.2009 в 16:19)
| | REPLACE | |
|
|
|
|
|
|
|
для: NightSoldier
(23.09.2009 в 16:19)
| | Проще всего тут воспользоваться оператором REPLACE, который ведет себя именно так, как вы описываете. | |
|
|
|
|
|
|
|
для: cheops
(23.09.2009 в 16:24)
| | REPLACE INTO user_entry SET user_ip='$user_ip', qu_entry=`qu_entry`+1, date_entry='".time().'\'
вот такой запрос и нифига не работает, в том смысле, что не заменяет, а остаются прежние-(((((((
как же быть???
или в моём запрсое есть ошибочка - исправьте плиз? | |
|
|
|
|
|
|
|
для: NightSoldier
(23.09.2009 в 16:28)
| | А структура таблицы какая? | |
|
|
|
|
|
|
|
для: cheops
(23.09.2009 в 16:35)
| | user_ip - INT(11) PRIMARY index
qu_entry - TINYINT(2)
date_entry - BIGINT(20) | |
|
|
|
|
|
|
|
для: NightSoldier
(23.09.2009 в 16:28)
| | Запрос REPLACE (равно как и INSERT) позволяет записать в строку новые значения, при этом полностью затерев старое содержимое строки, а не изменить значения в имеющихся полях.
Выражение qu_entry=`qu_entry`+1 здесь неприменимо.
Каноническая форма запросов INSERT и REPLACE не содержит раздела SET вообще.
Для изменения имеющихся значений можно применить оператор INSERT ... ON DUPLICATE KEY UPDATE | |
|
|
|
|
|
|
|
для: Trianon
(23.09.2009 в 16:37)
| | INSERT ... ON DUPLICATE KEY UPDATE
я незнаю как его использовать можно пример пожалуйста? | |
|
|
|
|
|
|
|
для: NightSoldier
(23.09.2009 в 16:46)
| | Конечно, можно. Пример находится на странице документации MYSQL к этому запросу.
Не видеть её (страницу) Вы по идее не могли.
Более живой пример можно найти поиском в этом форуме. | |
|
|
|
|
|
|
|
для: Trianon
(23.09.2009 в 16:51)
| | уже всё сделал! всё работает! УРА
спасибо | |
|
|
|