Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: REPLACE mysql, замена того, что указано в запросе

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Иван14
Отправлено: 18 Октября, 2012 - 09:22:13
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Авг. 2011  
Откуда: Владивосток


Помог: 0 раз(а)




Всем привет!
в таблице places есть 3 поля, id, parent_id, title

Выполняю запрос
REPLACE INTO places (id, parent_id) VALUES(2, 4)
в итоге у меня id и parent_id заменились, а title стал пустой.. то есть обновился на пустую строку.

перерыл не один форум, не могу найти объяснения...
мне нужно составить запрос через REPLACE чтобы выполнить обновление без замены тех полей, которые я не указываю

возможно ли это не используя INSERT INTO ... ON DUPLICATE KEY UPDATE? если да то как.
буду рад помощи!

(Отредактировано автором: 18 Октября, 2012 - 09:23:44)

 
 Top
eai
Отправлено: 18 Октября, 2012 - 09:26:18
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




А если так?
REPLACE INTO places (id, parent_id, title) VALUES(2, 4, title)

ЗЫ. чисто пальцем в небо так как страюсь не пользоваться по жизни особенностями конкретного сервера а следовать ANSI SQL

ЗЗЫ
Вообще в доке http://phpclub[dot]ru/mysql/doc/replace[dot]html
сказано что фактически происходит замена (DELETE / INSERT) посему то что вы имеете это верно. Да и в случае если комбинация новая то у вас пустой title, что есть не хорошо.

(Отредактировано автором: 18 Октября, 2012 - 09:29:05)

 
 Top
Иван14
Отправлено: 18 Октября, 2012 - 09:33:35
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Авг. 2011  
Откуда: Владивосток


Помог: 0 раз(а)




eai пишет:
А если так?
REPLACE INTO places (id, parent_id, title) VALUES(2, 4, title)

если бы было все так просто я бы не написал на форум..

ссылка, которую ты мне кинул нового не рассказала.. не пример, ничего) прости жду дальше мнений.
 
 Top
eai
Отправлено: 18 Октября, 2012 - 09:45:06
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




Иван14 пишет:
прости жду дальше мнений.


Я прям расстроился Улыбка


А почему не хочешь INSERT INTO ... ON DUPLICATE KEY UPDATE?
 
 Top
Иван14
Отправлено: 18 Октября, 2012 - 10:01:27
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Авг. 2011  
Откуда: Владивосток


Помог: 0 раз(а)




eai пишет:
А почему не хочешь INSERT INTO ... ON DUPLICATE KEY UPDATE?


ну зачем то же придумали REPLACE.

вот тут пишут что он аналог INSERT INTO ... ON DUPLICATE KEY UPDATE http://www[dot]mysql[dot]ru/docs/man/REPLACE[dot]html

но что-то я аналога не наблюдаю.. вот и решил на форуме спросить можно ли использовать REPLACE для моей задачи или нет..
 
 Top
eai
Отправлено: 18 Октября, 2012 - 10:12:51
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




Иван14 пишет:

но что-то я аналога не наблюдаю.. вот и решил на форуме спросить можно ли использовать REPLACE для моей задачи или нет..


Так они не аналоги

Replace это INSERT или DELETE + INSERT
on duplicate это INSERT или UPDATE
 
 Top
Мелкий Супермодератор
Отправлено: 18 Октября, 2012 - 10:20:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Иван14 пишет:
ну зачем то же придумали REPLACE.

Именно для того, чтобы:
Иван14 пишет:
в итоге у меня id и parent_id заменились, а title стал пустой.. то есть обновился на пустую строку.

Корректнее только сказать - обновился на значение по-умолчанию.


-----
PostgreSQL DBA
 
 Top
Иван14
Отправлено: 18 Октября, 2012 - 10:34:37
Post Id



Гость


Покинул форум
Сообщений всего: 111
Дата рег-ции: Авг. 2011  
Откуда: Владивосток


Помог: 0 раз(а)




Мелкий разъяснил, спасибо)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB